2012-04-24 10 views
5

quiero construir un sistema ACL para mi aplicación que tenga el siguiente requisito.Zend_Acl, con roles y permisos almacenados en la base de datos

  1. A los usuarios se les asignará un rol único o múltiple. (Admin, Personal), etc.
  2. papel tendrá permisos. (Send_Invoices, send_mail, Delete_Invoices, etc.) Send_Estimate
  3. usuario se le asignará permiso personalizado aparte del papel que hereda.

mi estructura de base de datos para ACL es el siguiente

role: 
+----------+-------------+------+-----+---------+----------------+ 
| Field | Type  | Null | Key | Default | Extra   | 
+----------+-------------+------+-----+---------+----------------+ 
| id  | int(11)  | NO | PRI | NULL | auto_increment | 
| roleName | varchar(50) | NO | UNI | NULL |    | 
+----------+-------------+------+-----+---------+----------------+ 
permission: 
+----------------+-------------+------+-----+---------+----------------+ 
| Field   | Type  | Null | Key | Default | Extra   | 
+----------------+-------------+------+-----+---------+----------------+ 
| id    | int(11)  | NO | PRI | NULL | auto_increment | 
| permissionName | varchar(50) | NO |  | NULL |    | 
| permissionKey | varchar(50) | NO | UNI | NULL |    | 
+----------------+-------------+------+-----+---------+----------------+ 
role_permission 
+---------------+---------+------+-----+---------+----------------+ 
| Field   | Type | Null | Key | Default | Extra   | 
+---------------+---------+------+-----+---------+----------------+ 
| id   | int(11) | NO | PRI | NULL | auto_increment | 
| role_id  | int(11) | NO | MUL | NULL |    | 
| permission_id | int(11) | NO |  | NULL |    | 
+---------------+---------+------+-----+---------+----------------+ 
user_role 
+---------------+---------+------+-----+---------+----------------+ 
| Field   | Type | Null | Key | Default | Extra   | 
+---------------+---------+------+-----+---------+----------------+ 
| id   | int(11) | NO | PRI | NULL | auto_increment | 
| user_id  | int(11) | NO | MUL | NULL |    | 
| role_id  | int(11) | NO |  | NULL |    | 
+---------------+---------+------+-----+---------+----------------+ 
user_permission 
+---------------+---------+------+-----+---------+----------------+ 
| Field   | Type | Null | Key | Default | Extra   | 
+---------------+---------+------+-----+---------+----------------+ 
| id   | int(11) | NO | PRI | NULL | auto_increment | 
| user_id  | int(11) | NO | MUL | NULL |    | 
| permission_id | int(11) | NO |  | NULL |    | 
+---------------+---------+------+-----+---------+----------------+ 

he migrado a Zend Framework, y que tiene un problema de decidir wether Zend_Acl me permite implementar la estructura actual. mi pregunta es.

  1. ¿es posible para mí implementar la ACL con la estructura de la base de datos actual para hacer lo necesario en Zend Framework?
  2. ¿hay alguna mejor implementación que me permita lograr lo que quiero en Zend Framework?

estaré agradecido si alguien me puede dar una manera de comenzar con lo que tengo que hacer. cualquier recurso, enlaces que podrían ayudarme?

gracias.

Respuesta

Cuestiones relacionadas