He estado pensando en la aplicación web que estoy a punto de comenzar a desarrollar y me pregunto si mi enfoque habitual podría mejorarse.¿Cómo debo implementar mi ACL en una aplicación web?
En mis últimas aplicaciones he creado una tabla (ver a continuación) de roles (como CREATE POST
, EDIT POST
etc.) que tienen un campo de bits aplicado a cada uno de ellos, así que puedo asignarle ciertos derechos de registro y verifíquelos más adelante (p. ej., $user->hasRight(CREATE_POST)
).
Me pregunto si hay un mejor enfoque para esto. Ciertamente es confuso cuando los derechos no están específicamente vinculados al usuario (podría tener una tabla donde cada derecho es una columna booleana, pero eso solo suena como una pequeña mejora), y ¿qué sucede si cambio algo?
No busco utilizar bibliotecas estándar (la aplicación en sí misma es una experiencia de aprendizaje para mí: uso de postgresql, git, etc.) aunque estoy muy feliz de inspirarme en ellas para construir la mía, así que si hay algo especial que crees que debería echarle un vistazo por favor dímelo :)
Además: será para una aplicación de PHP, pero si hay una gran práctica en, digamos, Ruby on Rails, estoy seguro de que puedo resolverlo :) – Ross