一般ユーザの機能制限

最後に,管理者ユーザのみ使用できる機能を付加し,一般ユーザの使える機能を制限します。


(管理者のみ)提出課題の一覧表示・コメント変更・課題削除

管理者だけが使える機能として,提出課題の管理機能を付加します。

(管理者のみ)提出課題の一覧:/submission

challenge/app.js:(管理者のみ)全ユーザの提出課題確認

(管理者のみ)提出課題の削除とコメントの更新:/submission_delete, /submission_update

challenge/app.js:(管理者のみ)全ユーザの提出課題の削除・コメント更新

submission.pugは,ほぼtask.pugと同じなので,上記のスクリプトを見ながら自分で作ってみて下さい。

トップページメニューの変更

ログイン時のトップページの表示を,管理者かどうかで変更します。

まず,/top_page実行時に,管理者かどうかを判別する変数を渡すように変更します。

challenge/app.js:管理者ユーザかどうかを入力

次に,渡された管理者チェック変数json_data['admin']に応じてメニュー表示を変更するための条件分をtop_page.pugに追加します。

challenge/static/top_page.pug:管理者ユーザのみ表示

教材管理メニューの変更

一般ユーザは教材のダウンロードのみ可能とし,管理者ユーザだけが教材ファイルのアップロードと削除が可能なように/learning実行時の管理者変数の追加と,learning.pugの変更を下記のように行います。

challenge/app.js:管理者ユーザかどうかを入力
challenge/static/learning.pug:管理者ユーザのみ表示

最後に

一応これで表面上の機能制限はできていますが,URLで管理者ユーザしか見えないイベント処理を指定されると実行されてしまう可能性があります。それを防ぐにはapp.jsの処理ごとにadmin_check関数で機能を制限するしかありません。セキュリティ対策を万全にするための工夫は各自で行うようにして下さい。

UIの改良,機能の追加なども各自で工夫して,自由制作や卒研に繋げて頂ければ,執筆者としてこれに勝る幸せはありません。頑張って下さい。


Copyright (c) 2014-2022 幸谷研究室 @ 静岡理工科大学 All rights reserved.
Copyright (c) 2014-2022 T.Kouya Laboratory @ Shizuoka Institute of Science and Technology. All rights reserved.