パーミッションの設定 :: 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
コメント