PR

CakePHP – ACL(4)

グループの追加

/groups/add にアクセスすると名称を入力する画面がbakeによって作られているので、以下のグループを作成する。

administrators
 managers
 users

ユーザの追加作業

/users/add にアクセスするとユーザを作成することができる画面がbakeによって作られているので、以下のようなユーザを作成する。

スポンサードリンク

 id: admin
 pass:admin
 group_id: 1
id: manager
 pass: manager
 group_id: 2
id: user
 pass: user
 group_id: 3

確認

aros, groups, users にデータが追加されていることが確認できる。

この状態でユーザ情報の所属グループを変更すると、ユーザテーブルには情報が反映されるが、AROは反映されない。

以下のコードを追加するとユーザ情報の変更時にAROを更新するようになる。

Userモデルに追加

/**
 * After save callback
 *
 * user の aro を更新する *
 * @access public
 * @return void
 */
function afterSave($created) {
        if (!$created) {
            $parent = $this->parentNode();
            $parent = $this->node($parent);
            $node = $this->node();
            $aro = $node[0];
            $aro['Aro']['parent_id'] = $parent[0]['Aro']['id'];
            $this->Aro->save($aro);
        }
}

※続きは次回

コメント