Ver Mensaje Individual
  #9 (permalink)  
Antiguo 19/02/2013, 15:30
Avatar de dashtrash
dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: variable accesible por otras clases pero solo seteada por una

Si en tu sistema, los usuarios tienen uno o varios roles, y los controladores requiren un cierto rol para poder ser accedidos, la clase base Controlador, puede definir un metodo abstracto getRequiredRole(), junto con un método canAccess($user), que comprueba si el usuario tiene el rol requerido.
Al ser un método abstracto, todas las clases derivadas de controller tienen que implementar la función.
Otra opción, es hacer una implementación por defecto de getRequiredRole() que siempre devuelva "PUBLIC" o "SUPERADMIN" (o siempre deja acceso, o siempre requiere el nivel máximo), y que las clases derivadas (cada uno de los controladores ), la sobreescriban.

El hacer abstracto el metodo getRequiredRole() es para forzar a que se tenga que pasar un minuto especificando qué rol es apropiado para cada controlador, en vez de simplemente "confiar" en la configuración por defecto.