パーミッションの設定 :: ACL を制御するシンプルなアプリケーション :: 開発例 :: マニュアル :: 1.2 Collection :: The Cookbook :
http://book.cakephp.org/ja/view/648/Setting-up-permissions
ログイン :: ACL を制御するシンプルなアプリケーション :: 開発例 :: マニュアル :: 1.2 Collection :: The Cookbook :
http://book.cakephp.org/ja/view/649/Logging-in
ログアウト :: ACL を制御するシンプルなアプリケーション :: 開発例 :: マニュアル :: 1.2 Collection :: The Cookbook :
http://book.cakephp.org/ja/view/650/Logout
スポンサードリンク
beforeFilter() の最後に initDB() の呼び出しを追加
$this->initDB();
UsersController に initDB() を追加
function initDB() {
//$group =& $this->User->Group;
App::import('Model', 'Group');
$group = new Group();
// 管理者グループには全てを許可する
$group->id = 1;
$this->Acl->allow($group, 'controllers');
// マネージャグループには posts と widgets に対するアクセスを許可する
$group->id = 2;
$this->Acl->deny($group, 'controllers');
$this->Acl->allow($group, 'controllers/Posts');
$this->Acl->allow($group, 'controllers/Widgets');
$this->Acl->allow($group, 'controllers/Users/logout');
// ユーザグループには posts と widgets に対する追加と編集を許可する
$group->id = 3;
$this->Acl->deny($group, 'controllers');
$this->Acl->allow($group, 'controllers/Posts/add');
$this->Acl->allow($group, 'controllers/Posts/edit');
$this->Acl->allow($group, 'controllers/Widgets/add');
$this->Acl->allow($group, 'controllers/Widgets/edit');
$this->Acl->allow($group, 'controllers/Users/logout');
}
/users に一度アクセスすると、aros_acrosが更新される。確認できたら
(1)UsersController から $this->initDB(); を削除
(2)GroupsController と UsersController の beforeFilter() から $this->Auth->allowedActions = array(‘*’); を削除
(3)posts と widgets コントローラに次の行を追加
function beforeFilter() {
$this->Auth->allowedActions = array('index', 'view');
}
default.ctp の作成
cake/libs/views/layouts/default.ctp にあるデフォルトのコアのレイアウトをコピー、 app/views/layouts/default.ctp に次の行を追加。
$session->flash('auth');
◆users_controller.php のログアウトに追記
$this->Session->setFlash('Good-Bye');
$this->redirect($this->Auth->logout());
参考文献
- http://works-bb.net/2009/02/12/337.html


コメント