3.1. 認可管理用の機能¶
認可管理用の機能とは、グループ・メンバー・パーミッションの各認可情報の追加・削除を行う機能のことです。
Auth
クラス にある、次の6つのメソッドで構成されます。
グループの追加 | |
メンバーの追加 | |
パーミッションの追加 | |
グループの削除 | |
メンバーの削除 | |
パーミッションの削除 |
これらを詳しく説明します。
-
Auth.
add_group
(role, description) → グループid¶ グループを追加します。
使用例
>>> auth.add_group('test', 'test users') 10
- パラメータ
- role
グループのロール名を指定します。
- description
グーループ説明を指定します。デフォルトは ‘’ (空値)です。
- 戻り値
登録したグループ id を戻します。
-
Auth.
add_membership
([group_id, user_id, role]) → メンバーシップid¶ メンバーを追加します。登録するユーザ id とグループの id もしくはロールを指定します。
使用例
>>> auth.login_bare('testuser','password') #1 (省略) >>> auth.add_group('test', 'test users') #2 10 >>> auth.add_membership(10) #3 10 >>> auth.add_membership('test') #4 10 >>> auth.add_membership(user_id=1, role='test') #5 11
#1 コンソール上では login_bare メソッドでログインします。#2 test というロール名のグループを追加します。#3 ログイン中のユーザに、グループ id が 10 のメンバーシップを登録します。#4 ログイン中のユーザに、ロールが ‘test’ のメンバーシップを登録します。しかし登録が存在するので、メンバーシップの id を戻します。#5 ユーザ id が 1 のユーザで、ロールが ‘test’ のメンバーシップを登録します。- パラメータ
- group_id
グループの id を指定します。デフォルトは None です。ロールで指定する場合は、デフォルト値のままにします。
- user_id
ユーザの id を指定します。デフォルトは None です。 None の場合は現在のユーザの id で登録します。
- role
ロールを指定します。デフォルトは None です。グループ id で指定する場合は、デフォルト値のままにします。
パラメータを省略した場合、次のように動作します。
パターン 説明 user_id 省略 ログイン中のユーザidでメンバーを登録します。 group_id 省略 role パラメータ指定がある場合はロールからグループidを検索し登録します。 group_id / role 省略 パラメータが数字の場合はグループ id と判断し、登録します。 パラメータが数字以外の場合はロールと判断し、ロールからグループidを検索し登録します。
- 戻り値
- 登録したメンバーシップ id を戻します。既にメンバーが登録されている場合は何もせず、メンバーシップ id のみ戻します。
-
Auth.
add_permission
(group_id[, name, table_name, record_id]) → パーミッションid¶ パーミッションを追加します。登録するグループの id とパーミッション名、テーブル名、レコード id などを指定します。
使用例
>>> auth.add_permission(0) 4 >>> auth.add_permission(0, 'read') 5 >>> auth.add_permission(0, 'create', 'comment') 6 >>> auth.add_permission(0, 'update', 'comment', 15) 7
- パラメータ
- group_id
グループの id を指定します。このパラメータに 0 を指定すると、現在のユーザのユニークグループ(ロールが user_[id]のもの) でパーミッションが登録されます。
- name
パーミッション名を指定します。デフォルトは ‘any’ です。
- table_name
テーブル名を指定します。デフォルトは ‘’ (空値)です。
- record_id
レコード id を指定します。デフォルトは 0 です。
- 戻り値
登録したパーミッション id を戻します。
-
Auth.
del_group
(group_id)¶ グループと関係するメンバーシップ及びパーミッションを全てを削除します。
使用例
>>> auth.del_group(10)
- パラメータ
- group_id
グループ id を指定します。
-
Auth.
del_membership
(group_id[, user_id, role]) → 削除件数¶ メンバーシップの削除を行います。
使用例
>>> auth.del_membership(10) 1 >>> auth.del_membership(10, 5) 1 >>> auth.del_membership(group_id=None, user_id=1, role='test') 1
- パラメータ
- group_id
グループ id を指定します。ロールで指定する場合は、None を指定します。
- user_id
ユーザの id を指定します。デフォルトは None です。 None の場合は、現在ユーザの id の該当するメンバーシップを削除します。
- role
ロールを指定します。デフォルトは None です。
- 戻り値
削除件数を戻します。
-
Auth.
del_permission
(group_id[, name, table_name, record_id]) → 削除件数¶ パーミッションの削除を行います。
使用例
>>> auth.del_permission(10) 1 >>> auth.del_permission(10, 'read') 1 >>> auth.del_permission(10, 'create', 'comment') 1 >>> auth.del_permission(10, 'update', 'comment', 15) 1
最初の行は、グループ id が 13 で名前が ‘any’ のパーミッションを削除しています。- パラメータ
- group_id
グループ id を指定します。
- name
パーミッション名を指定します。デフォルトは ‘any’ です。
- table_name
テーブル名を指定します。デフォルトは ‘’ (空値)です。
- record_id
レコード id を指定します。デフォルトは 0 です。
name, table_name, record_id パラメータは指定してもしなくても、条件に合致するパーミッションしか削除しません。 例えば record_id を指定しない場合に、他の条件には一致しているパーミッションを全て削除する訳ではありません。 削除するには、record_id を指定して1つずつ削除することが必要です。
- 戻り値
削除件数を戻します。