J'ai une configuration de base de données comme celui-ci (je sais que ce nest pas la meilleure configuration, mais son de mon pouvoir de changer :-(Comment configurer CakePHP ACL pour 3 niveaux d'utilisateurs?
Fondamentalement, il existe 3 niveaux d'utilisateurs - Admin - Gestionnaires - Personnel
Quelques notes: membre du personnel -Chaque appartient au département -si le logon_code états-majors apparaît dans le tableau de gestion qu'ils sont un gestionnaire, sinon ils sont un membre du personnel les états-majors logon_code -Si apparaît dans le gestionnaire table et SystemAdmin est se t à 1, ils sont Admin
Comment diable puis-je régler ACL/Auth pour cela? Des idées?
CREATE TABLE tblStaff
( StaffID
int (11) auto_increment NOT NULL, dept_id
varchar (5) NULL par défaut, 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 par défaut non signé, PRIMARY KEY (ManagerID
);
CREATE TABLE tblDepartment
( dept_id
varchar (5) NOT NULL, sect_id
varchar (50) NULL par défaut, subsect_id
varchar (50) NULL par défaut, sect_name
varchar (50) NULL par défaut, sect_abbr
varchar (50) par défaut NULL, subsect_name
varchar (50) par défaut NULL, PRIMARY KEY (dept_id
) );
La table tblManager est nécessaire car il est possible qu'un membre du personnel soit en charge de plus d'un département. Mais cela aide à savoir que staffid et un "user_level_id" doivent être quelque part – Jenski
Cela peut être résolu par une relation HABTM entre vos tblUsers et tblDepartments, pas besoin de garder deux tables. Le mot clé ici est la normalisation. –
En théorie, le tblManager n'est-il pas la table de liens dans la relation HABTM? 1 Le membre du personnel peut avoir 2 ou plusieurs directeurs 1 département peut avoir 2 ou plusieurs gestionnaires Autorisations système stockées sur la table des gestionnaires pour déterminer à quoi ils peuvent/ne peuvent pas accéder – Jenski