管理者だけが使える機能として,提出課題の管理機能を付加します。
/submission/submission_delete, /submission_updatesubmission.pugは,ほぼtask.pugと同じなので,上記のスクリプトを見ながら自分で作ってみて下さい。
ログイン時のトップページの表示を,管理者かどうかで変更します。
まず,/top_page実行時に,管理者かどうかを判別する変数を渡すように変更します。
次に,渡された管理者チェック変数json_data['admin']に応じてメニュー表示を変更するための条件分をtop_page.pugに追加します。
一般ユーザは教材のダウンロードのみ可能とし,管理者ユーザだけが教材ファイルのアップロードと削除が可能なように/learning実行時の管理者変数の追加と,learning.pugの変更を下記のように行います。
一応これで表面上の機能制限はできていますが,URLで管理者ユーザしか見えないイベント処理を指定されると実行されてしまう可能性があります。それを防ぐにはapp.jsの処理ごとにadmin_check関数で機能を制限するしかありません。セキュリティ対策を万全にするための工夫は各自で行うようにして下さい。
UIの改良,機能の追加なども各自で工夫して,自由制作や卒研に繋げて頂ければ,執筆者としてこれに勝る幸せはありません。頑張って下さい。