unicornidm.template.command(5)
================================

概要
-----

::

    unicornidm.conf, templates/<name>.py

説明
------

バックエンドセクションのうち、 *type* が *command* となっているバックエンドは、
追加コマンドに関する設定を行います。

各バックエンドには必ずテンプレートファイルを用意する必要があります。
テンプレートファイルとは Unicorn ID Manager の任意属性 (フロントエンド属性) を
バックエンド固有の属性 (バックエンド属性) にマッピングするためのものです。

パラメーター
--------------

type
    バックエンドのタイプを指定します。

backend_primary_key_user
    ユーザーを一意に特定するためのバックエンド属性を指定します。
    デフォルト値は userName です。

backend_primary_key_group
    グループを一意に特定するためのバックエンド属性を指定します。
    デフォルト値は groupName です。

user_add_command
    ユーザー登録の際の追加コマンドを指定します。

user_modify_command
    ユーザー更新の際の追加コマンドを指定します。

user_enable_command
    ユーザー有効化の際の追加コマンドを指定します。

user_disable_command
    ユーザー無効化の際の追加コマンドを指定します。

user_change_password_command
    ユーザーのパスワード変更の際の追加コマンドを指定します。

user_delete_command
    ユーザー削除の際の追加コマンドを指定します。

user_rename_command
    ユーザー名のリネームの際の追加コマンドを指定します。

group_add_command
    グループ登録の際の追加コマンドを指定します。

group_modify_command
    グループ更新の際の追加コマンドを指定します。

group_delete_command
    グループ削除の際の追加コマンドを指定します。

group_rename_command
    グループ名のリネームの際の追加コマンドを指定します。

group_add_members_command
    グループにメンバーを追加する際の追加コマンドを指定します。

group_delete_members_command
    グループからメンバーを削除する際の追加コマンドを指定します。

`*_command` の引数について
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

上述のパラメーターの追加コマンドには引数を指定できます。
たとえば、以下のように指定することで、 *command* の第一引数に *userName* 、
第二引数に、 *homeDirectory* バックエンド属性の値を渡します。

::

    user_add_command = command {name} {homeDirectory}

このバックエンド属性は後述のテンプレートファイルに記述したものを指定できます。

なお、 *name* はユーザーの場合 *userName* のエイリアスです。操作対象がグループの場合、
*name* は *groupName* のエイリアスになります。


テンプレート
-------------

以下は、 command のテンプレートファイルの例です。
これにより、 *userName* , *password* , *homeDirectory* という
キーを持つ JSON データがコマンドに渡されます。

::

    User = {
        "userName": userName,
        "password": password,
        "homeDirectory": unixHomeDirectory,
    }


    Group = {
        "groupName": groupName,
    }
