3.4. unicornidm.template(5)¶
3.4.1. 概要¶
templates/<name>.py
3.4.2. 説明¶
バックエンドセクションを定義する際に、必ずテンプレートファイルを定義する必要があります。 テンプレートファイルは unicornidm.conf と同じディレクトリにある、 templates ディレクトリ内に、 <name>.py のファイル名で登録します。 <name> はバックエンド の名前です。
3.4.3. テンプレートファイルのルール¶
テンプレートファイルは Python の構文に基づいて以下のルールで記載します。
User 及び Group という変数に辞書オブジェクトを割り当てること
辞書オブジェクトは key-value の形式になっていること
辞書オブジェクトの key は必ず str 型であること
辞書オブジェクトの value は以下のいずれかであること
str 型
str 型 (printf(3) の文字列書式を含む)
list 型
dict 型
- dict の各 value は str か任意の変数であること
任意の変数
default 関数の返り値
3.4.4. 例¶
以下は LDAP バックエンドのテンプレートファイルです。
User = {
"objectClass": [
"top",
"person",
"organizationalPerson",
"inetOrgPerson",
"posixAccount",
],
"uid": userName,
"cn": userName,
"uidNumber": default(uidNumber),
"gidNumber": default(gidNumber, 100),
"loginShell": default(loginShell, "/bin/bash"),
"homeDirectory": default(unixHomeDirectory, "/home/%(userName)s"),
"sn": familyName,
"givenName": givenName,
"userPassword": password,
"mail": email,
"description": default(description),
"displayName": default(displayName, "%(familyName)s %(givenName)s"),
}
Group = {
"objectClass": [
"top",
"posixGroup",
],
"cn": groupName,
"gidNumber": default(gidNumber),
"description": default(description),
}
このテンプレートファイルの特徴は以下です。
objectClass に要素すべてが str 型の list を格納しています
- バックエンドに属性を渡す際、必ず objectClass がここで定義した属性になります
User の uid には userName という Unicorn ID Manager の任意属性が割り当てられています
- Unicorn ID Manager から userName=user1 としてユーザー登録を行った時、 バックエンドには uid: user1 として登録されます
User の mail には email という Unicorn ID Manager の任意属性が割り当てられています
- ルールは uid と同様ですが、もし email に複数の値が格納されていた場合、 バックエンドの mail 属性にも同様に複数の値が割り当てられます
User の loginShell には default 関数の返り値が割り当てられています
- default 関数の第一引数 loginShell が指定されなかった場合、第二引数の /bin/bash が loginShell に割り当てられます
User の homeDirectory には default 関数の返り値が割り当てられています
- default 関数の第一引数 homeDirectory が指定されなかった場合、第二引数の /home/%(userName)s が割り当てられます。なお、 %(userName)s は Unicorn ID Manager の任意属性 userName の値に展開されます
Group の description には default 関数の返り値が割り当てられています
- default 関数の第一引数 description が指定されなかった場合、 description は空になります