ここでは students というグループを作成し,このグループに所属するユーザが comments の内容を管理ページから閲覧できるようにします.また,user_c を students グループに所属させます.
まず,管理サイトに root でログインします.その後,「グループ」のページから右上の「グループを追加」をクリックします.
グループの名前に「students」を入力し,利用可能パーミッション(左のリスト)の中にある「comments | comment | Can view comment」を選択して,選択されたパーミッション(右のリスト)に移動します.内容を確認して右下にある「保存」をクリックします.
グループが追加されました.
次にユーザ user_c を students グループに所属させます.「ユーザー」のページから user_c のページを開きます.下の画面の「利用可能グループ」から「選択されたグループ」に students グループを移動させます.最後に「保存」をクリックします.
root ユーザをログアウトして user_c でログインします.しかしながら,comment の情報を閲覧することができませんでした.次のページでは管理サイトに comments アプリケーションを登録して閲覧できるようにします.
念の為,今の操作でデータベースにどのような更新が行われたかを確認しておきます.(詳細はスキップして次のページに進んで構いません)
auth_group デーブルにはいま追加した students グループの情報が記録されています.
sqlite> select * from auth_group; ⏎
id|name
1|students
sqlite>
group_id = 1 の students グループには permission_id = 28 の権限が与えられていることが auth_group_permissions テーブルを見るとわかります.
sqlite> select * from auth_group_permissions; ⏎
id|group_id|permission_id
1|1|28
sqlite>
auth_permission テーブルを見ると permission_id = 28 が Can view comment を意味していることがわかります.
sqlite> select * from auth_permission; ⏎
id|content_type_id|codename|name
1|1|add_logentry|Can add log entry
2|1|change_logentry|Can change log entry
3|1|delete_logentry|Can delete log entry
4|1|view_logentry|Can view log entry
5|2|add_permission|Can add permission
6|2|change_permission|Can change permission
7|2|delete_permission|Can delete permission
8|2|view_permission|Can view permission
9|3|add_group|Can add group
10|3|change_group|Can change group
11|3|delete_group|Can delete group
12|3|view_group|Can view group
13|4|add_user|Can add user
14|4|change_user|Can change user
15|4|delete_user|Can delete user
16|4|view_user|Can view user
17|5|add_contenttype|Can add content type
18|5|change_contenttype|Can change content type
19|5|delete_contenttype|Can delete content type
20|5|view_contenttype|Can view content type
21|6|add_session|Can add session
22|6|change_session|Can change session
23|6|delete_session|Can delete session
24|6|view_session|Can view session
25|7|add_comment|Can add comment
26|7|change_comment|Can change comment
27|7|delete_comment|Can delete comment
28|7|view_comment|Can view comment
sqlite>
上の content_type_id は django_content_type テーブルを参照すると理解できます.
sqlite> select * from django_content_type; ⏎
id|app_label|model
1|admin|logentry
2|auth|permission
3|auth|group
4|auth|user
5|contenttypes|contenttype
6|sessions|session
7|comments|comment
sqlite>
auth_user_groups テーブルから user_id = 3 の user_c が,group_id = 1 の students グループに所属していることがわかります.
sqlite> select * from auth_user_groups; ⏎
id|user_id|group_id
1|3|1
sqlite>
また,django_admin_log テーブルには管理サイトで実行された操作の履歴が記録されています.
sqlite> select * from django_admin_log; ⏎
id|action_time|object_id|object_repr|change_message|content_type_id|user_id|action_flag
1|2022-08-02 11:49:24.509893|3|user_c|[{"changed": {"fields": ["Staff status"]}}]|4|4|2
2|2022-08-02 11:51:44.542363|1|students|[{"added": {}}]|3|4|1
3|2022-08-02 11:57:15.411587|3|user_c|[{"changed": {"fields": ["Groups"]}}]|4|4|2
sqlite>