PR

CakePHP – ACL(1)

以下のマニュアルに従ってみる。

アプリケーションの準備 :: ACL を制御するシンプルなアプリケーション :: 開発例 :: マニュアル :: 1.2 Collection :: The Cookbook :
http://book.cakephp.org/ja/view/642/Preparing-our-Application

10.2.1の作業

CREATE TABLE prefix_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 prefix_groups (
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    created DATETIME,
    modified DATETIME
);
CREATE TABLE prefix_posts (
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    user_id INT(11) NOT NULL,
    title VARCHAR(255) NOT NULL,
    body TEXT,
    created DATETIME,
    modified DATETIME
);
CREATE TABLE prefix_widgets (
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    part_no VARCHAR(12),
    quantity INT(11)
);

ACL関連テーブルも作っておかないと次の作業でエラーが出たので、作っておく

スポンサードリンク

CREATE TABLE `prefix_acos` (
        `id` int(10) NOT NULL AUTO_INCREMENT,
        `parent_id` int(10) DEFAULT NULL,
        `model` varchar(255) DEFAULT NULL,
        `foreign_key` int(10) DEFAULT NULL,
        `alias` varchar(255) DEFAULT NULL,
        `lft` int(10) DEFAULT NULL,
        `rght` int(10) DEFAULT NULL,    PRIMARY KEY  (`id`));
CREATE TABLE `prefix_aros` (
        `id` int(10) NOT NULL AUTO_INCREMENT,
        `parent_id` int(10) DEFAULT NULL,
        `model` varchar(255) DEFAULT NULL,
        `foreign_key` int(10) DEFAULT NULL,
        `alias` varchar(255) DEFAULT NULL,
        `lft` int(10) DEFAULT NULL,
        `rght` int(10) DEFAULT NULL,    PRIMARY KEY  (`id`));
CREATE TABLE `prefix_aros_acos` (
        `id` int(10) NOT NULL AUTO_INCREMENT,
        `aro_id` int(10) NOT NULL,
        `aco_id` int(10) NOT NULL,
        `_create` varchar(2) DEFAULT '0' NOT NULL,
        `_read` varchar(2) DEFAULT '0' NOT NULL,
        `_update` varchar(2) DEFAULT '0' NOT NULL,
        `_delete` varchar(2) DEFAULT '0' NOT NULL,      PRIMARY KEY  (`id`),
        UNIQUE KEY `ARO_ACO_KEY` (`aro_id`, `aco_id`));

bake

マニュアルにはbakeしといてね、程度にしか書かれていないので以下を参考に作業をする。

CakePHP 10.2 ACL 開発例の補足 – WORKS-BB – オープンソース、PHP開発、ホームページ作成、ブログカスタマイズ :
http://works-bb.net/2009/02/12/337.html

※続きは次回

コメント