yard 用にコメントを整理
authorOHASHI, Norikazu <katz@neko-mori.sakura.ne.jp>
Sat, 13 Apr 2019 04:27:50 +0000 (13:27 +0900)
committerOHASHI, Norikazu <katz@neko-mori.sakura.ne.jp>
Sat, 13 Apr 2019 04:27:50 +0000 (13:27 +0900)
sinatra/app/controllers/web_gui.rb
sinatra/app/models/users_db.rb
sinatra/start.rb

index 9e09cc9..fadc6a3 100644 (file)
@@ -1,15 +1,25 @@
 # coding: utf-8
+# Web GUI用コントローラ
+# @author OHASHI, Norikazu
+
 require 'sinatra/base'
 require 'sinatra'
 require 'haml'
 
+
+
 # ユーザアクセス用モデル
 require_relative '../models/users_db'
 
+# 書籍管理サーバ WebGUI Controller
 class WebGui < Sinatra::Base
 
+  # エラーステータス設定
+  # @attr_reader [Integer] status HTTTP レスポンスステータス
   class WebError < StandardError
-    attr_reader :status
+    attr_reader :status 
+
+    # @param [Integer] status HTTP レスポンスステータス
     def initialize(status)
       @status = status
     end
@@ -24,22 +34,28 @@ class WebGui < Sinatra::Base
       :expire_after => 300,
       :secret => 'change'
   
-  #stylesheet
+  # スタイルシート
   get '/style.css' do
     scss :'scss/style'
   end
   
-  # main page 
+  # メインページ
   get '/' do
     haml :main
   end
 
-  # signup page
+  # サインアップページ
   get '/signup' do
     haml :signup
   end
 
-  # signup posting
+  # サインアップページ(POST)
+  # @note POST パラメータ:
+  #   name [String] ログインユーザ名,
+  #   full_name [String] フルネーム,
+  #   email [String] Eメール,
+  #   passwd [String] パスワード
+  # @raise [WebError] サイアップ失敗
   post '/signup' do
     name = params[:name]
     full_name = params[:full_name]
@@ -47,6 +63,7 @@ class WebGui < Sinatra::Base
     passwd = params[:passwd]
 
     begin
+      # アカウント作成
       id = UserAccount.createAccount(name, full_name, email, passwd)
       session[:userId] = id;
       redirect "/user_home"
@@ -56,15 +73,22 @@ class WebGui < Sinatra::Base
     end
   end
 
+  # ログインページ
   get '/login' do
     haml :login
   end
 
+  # ログインページ(POST)
+  # @note POST パラメータ:
+  #   name [String] ログインユーザ名,
+  #   passwd [String] パスワード
+  # @raise [WebError] ログイン失敗
   post '/login' do
     name = params[:name]
     passwd = params[:passwd]
 
     begin
+      # パスワードチェック
       id = UserAccount.checkPasswd(name, passwd);
       session[:userId] = id;
       redirect "/user_home"
@@ -75,6 +99,8 @@ class WebGui < Sinatra::Base
     end
   end
 
+  # ユーザ用ホームページ
+  # @raise [WebError] セッションの期限切れ
   get '/user_home' do
     id = session[:userId]
     if (id == nil)
@@ -88,11 +114,13 @@ class WebGui < Sinatra::Base
     haml :user_home
   end
 
+  # ログアウトページ
   get '/logout' do
     # 最終ログイン情報登録
     haml :logout
   end
 
+  # エラーページ
   error WebError do
     e = env['sinatra.error']
     status e.status
index d0ad470..784116e 100644 (file)
@@ -1,4 +1,6 @@
 # coding: utf-8
+# ユーザDBアクセス処理
+# @author OHASHI, Norikazu
 
 require 'active_record'
 require 'mysql2'
@@ -9,12 +11,17 @@ db_config = File.join(File.dirname(__FILE__), 'database.yml')
 ActiveRecord::Base.configurations = YAML.load_file(db_config)
 ActiveRecord::Base.establish_connection(:development)
 
+# ユーザ情報
 class User < ActiveRecord::Base
 end
 
-
+# ユーザ管理
 class UserAccount
 
+  # ユーザロール
+  ROLE_AUTH = 0    #管理者権限
+  ROLE_NORMAL = 8  #一般権限
+  
   # 認証エラー
   class AuthenticationError < SecurityError
   end
@@ -31,9 +38,15 @@ class UserAccount
   class DbAccessError < StandardError
   end
 
-  # ユーザロールを設定
-  
+    
   # ユーザアカウントを作成
+  # @param [String] name ユーザ名
+  # @param [String] full_name フルネーム
+  # @param [String] email Eメール
+  # @param [String] passwd パスワード
+  # @return [Integer] 採番されたユーザID
+  # @raise [AlreadyInstanceError] すでにユーザ情報を登録済み
+  
   def self.createAccount(name, full_name, email, passwd)
     
     # ユーザの有無をチェック
@@ -52,7 +65,7 @@ class UserAccount
     user.email = email
     user.passwd_salt = passwd_salt
     user.passwd_hash = passwd_hash
-    user.role = 8
+    user.role = ROLE_NORMAL
     user.create_at = DateTime.now
     user.update_at = DateTime.now
     user.save
@@ -62,6 +75,11 @@ class UserAccount
 
 
   # パスワードをチェックする
+  # @param [String] name ユーザ名
+  # @param [String] passwd パスワード
+  # @return [Integer] 認証されたユーザID
+  # @raise [NotfoundInstanceError] ユーザ情報の取得に失敗
+  # @raise [AutenticationError] 認証失敗
   def self.checkPasswd(name, passwd)
     user = User.find_by(user_name: name)
 
@@ -82,6 +100,9 @@ class UserAccount
   end
 
   # ユーザ情報取得
+  # @param [Integer] id 対象ユーザID
+  # @return [User] ユーザ情報
+  # @raise [NotfoundInstanceError] ユーザ情報の取得に失敗
   def self.getUser(id)
     user = User.find_by(user_id: id)
     if (user == nil)
index 73971e8..8b3fb6c 100644 (file)
@@ -1,10 +1,18 @@
+# coding: utf-8
+# 書籍管理サーバベース処理
+# @author OHASHI, Norikazu
+
 require 'sinatra/base'
 require_relative './app/controllers/web_gui'
 # require 'app/controllers/restful_api'
 
+# 書籍サーバ用メインルート
 class Main < Sinatra::Base
+  #ルートに対応するコントローラの指定
   ROUTES = {
+    # Web GUI 用のRoute
     '/' => WebGui
+    # Web API 用のRoute
 #    '/webapi' => RESTfulAPI,
   }
 end