Blogブログ

Category: ACL

cakePHP: update aco table without command.

コマンドラインが使えない環境でacoテーブルを更新するには、以下のような関数を追加して実行する。 例えば、studentモデルを追加する。 まず、user/reitnitDBにアクセスすることでDBが更新されるよう、usersContorllerに下を追加する。 最初にStudentsのみ追加。 public function beforeFilter() { parent::beforeFilter(); $this->Auth->allow(‘reinitDB’); } public function reinitDB() { $this->Acl->Aco->create(array(‘parent_id’ => 1, ‘alias’ => ‘Students’, ‘model’ => ”)); $this->Acl->Aco->save(); echo “all done”; exit; } user/reitnitDBにアクセスする。 acoテーブルに一行追加されているはず。 今回追加した分のIDを93とする。 下層のページのために、下記を追加。 $aliasesの配列に含まれるページをacoテーブルに追加していくもの。 public function reinitDB() { $aliases = array( ‘admin_index’, ‘admin_add’, ‘admin_edit’, ‘admin_delete’, ‘admin_view’, ‘admin_course_edit’, ‘admin_couse_take’, ‘index’, ‘add’, ‘edit’, ‘view’, ); foreach […]

Cake2.4.2 Simple ACL tutorial メモ

Tutorialでのお勉強。 ACL – Access Control List aro – Access Request Object aco – Accecc Controll Object 1.サンプルテーブル。これでBakeする。 CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL UNIQUE, password CHAR(40) NOT NULL, group_id INT(11) NOT NULL, created DATETIME, modified DATETIME ); CREATE TABLE groups ( id INT(11) NOT NULL AUTO_INCREMENT […]