PR

CakePHP – ACL(6)

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

コメント

タイトルとURLをコピーしました