Autenticación de CodeIgniter + privilegios de usuario


Estoy tratando de construir un sistema de autenticación en mi aplicación, pero estoy teniendo algunos problemas para decidir cuál es la mejor manera de completar lo que quiero en CodeIgniter.

El sitio web permite a las empresas gestionar sus edificios. Una empresa puede tener muchos edificios, y muchos usuarios (cuando digo usuarios me refiero a los empleados de esa empresa).

En este sitio web me gustaría que dos tengan (básicamente) cuatro tipos generales de usuarios.

  • Super Admin: Esto sería capaz de agregue nuevos administradores y nuevas empresas a la base de datos y otorgue privilegios al resto de los administradores.
  • Admin: Esto podría hacer cosas diferentes dependiendo de los privilegios asignados.
  • Superusuario de la empresa: Este usuario se crearía directamente cuando un administrador crea una nueva empresa. Este usuario sería capaz de crear nuevos usuarios para esa empresa, y dado que tendría permisos totales, sería capaz de hacer todo lo que los otros usuarios pueden hacer.
  • Usuario de la Empresa: Dependiendo de los privilegios asignados por su superusuario, este usuario sería capaz de hacer y ver diferentes datos (por ejemplo, un usuario simple solo sería capaz de ver la información de uno de los muchos edificios de la empresa).

Por lo tanto, a pesar de que he visto muchas bibliotecas de autenticación por ahí para CodeIgniter, sería bueno escuchar cualquier recomendación sobre cómo podría diseñar este sistema" basado en roles de autenticación", y si particularmente recomienda una biblioteca que podría ayudar a conseguirlo.

Aprecio!

Author: thekenobe, 2011-02-12

4 answers

Hay muchas bibliotecas que ya manejan la autenticación dentro de Codeigniter, pero la que recomendaría es Ion_Auth. Maneja los permisos de usuario (grupos) muy bien y en realidad he hecho un writeup detallado esbozando una buena manera de manejar esta situación con Ion_Auth.

 16
Author: jondavidjohn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-21 11:50:20

Sugiero FlexiAuth biblioteca que es una versión re-modificada de ion Auth, y tiene muchas características ya incorporadas, simplemente fuera de la caja.

 9
Author: CodeIgniter Expert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-06 11:42:11

He estado desarrollando un sistema de autenticación basado en roles para Codeigniter llamado WolfAuth, aquí está el repositorio. Todavía es pronto, pero funciona. Puede agregar roles, etc. y luego restringir funciones y clases a roles de usuario y nombres de usuario particulares.

 3
Author: Dwayne Charrington,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-23 04:33:23

Use CI_aauth. Me gusta esto, esto es muy bueno de otros auth.

Https://github.com/kabircse/CodeIgniter-Aauth

 3
Author: Kabir Hossain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-23 06:53:38