Как мне настроить CakePHP ACL для 3 уровней пользователей? - PullRequest
0 голосов
/ 03 июня 2009

У меня есть такая база данных (я знаю, что это не лучшая настройка, но я не в силах изменить его: - (

В основном есть 3 уровня пользователей - Админ - менеджеры - Персонал

Несколько заметок: -Каждый сотрудник работает в отделе -Если логин_код сотрудников отображается в таблице менеджера, они Менеджер, в противном случае они являются сотрудниками -Если штатный логон_код появляется в таблице менеджера и 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, ПЕРВИЧНЫЙ КЛЮЧ (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 Ответ

1 голос
/ 04 июня 2009

Честно говоря, я не понимаю, почему tblStaff и tblManager должны быть разделены в вашем примере. Разве они не все «сотрудники», то есть «сотрудники», в каком-то смысле?

Почему бы и нет:

создать таблицу tblUsers (UserID, logon_code, dept_id, SystemAdmin, имя, фамилия и т. Д.)

В конце концов, независимо от того, будут ли они «персоналом» или «менеджером», они будут «пользователями» вашего приложения.

Кроме того, если вам нужно больше разделить их, вы можете добавить еще одно поле (например, user_level_id), которое будет определять роль каждого пользователя. После этого Auth / ACL должен быть довольно простым.

...