如何在3级用户的情况下设置CakePHP ACL?

时间:2009-06-03 15:08:16

标签: php cakephp installation acl

我有这样的数据库设置(我知道它不是最好的设置但是 它无法改变它: - (

基本上有3个级别的用户 - 管理员 - 经理 - 工作人员

几点说明: - 每个员工都属于部门 - 如果Staffs logon_code出现在经理表中,则它们是 经理,否则他们是员工 - 如果人员logon_code出现在管理器表和SystemAdmin中 设置为1,它们是Admin

我该如何为此设置ACL / Auth?有什么想法吗?

CREATE TABLE tblStaff(   StaffID int(11)NOT NULL auto_increment,   dept_id varchar(5)默认为NULL,   logon_code char(10)NOT NULL,   forename char(50)NOT NULL,   surname char(50)NOT NULL,   PRIMARY KEY(StaffID), );

CREATE TABLE tblManager(   ManagerID varchar(15)NOT NULL,   logon_code varchar(15)NOT NULL,   dept_id varchar(5)NOT NULL,   SystemAdmin tinyint(1)无符号默认NULL,   主要关键(ManagerID) );

CREATE TABLE tblDepartment(   dept_id varchar(5)NOT NULL,   sect_id varchar(50)默认为NULL,   subsect_id varchar(50)默认为NULL,   sect_name varchar(50)默认为NULL,   sect_abbr varchar(50)默认为NULL,   subsect_name varchar(50)默认为NULL,   主要关键(dept_id) );

1 个答案:

答案 0 :(得分:1)

老实说,我不明白为什么tblStaff和tblManager应该在你的例子中分开。他们不是所有的“雇员”,即某种方式的“员工”吗?

为什么不:

创建表tblUsers(UserID,logon_code,dept_id,SystemAdmin,firstname,lastname等)

毕竟,无论他们是“员工”还是“经理”,他们都将成为您申请的“用户”。

此外,如果您需要更多分离,可以添加另一个字段(例如user_level_id),以确定每个用户的角色。之后,Auth / ACL应该相当简单。