Tengo CRUD que está hecho con gii y estoy modificando para obtener los resultados que deseo.
Hay dos niveles de usuarios correspondientes a la tbl_usuarios. Lo que hago en UserIdentify es consultar al modelo Usuarios si existe el usuario y luego comprobar clave. En ese modelo está definido el Rol.
Rol uno: administrador (hace todo)
Rol dos: Solo accede a contenido de una Tabla documentos relacionada en el modelo.
La pregunta es: ¿cómmo hago para que el Rol dos se cumpla?
No logro encontrar la forma de decirle al Modelo documentos: Hola, soy Usuario:id, me das mis documentos?
Si entendí correctamente, tendríamos que hacer una condición con el rol, en donde si es el rol 1 entonces ejecute un findAll sin condiciones, pero si es el rol 2 entonces el findAll debería llevar ciertas condiciones, o estoy equivocado?
Es totalmente válido, el setState usualmente se hace en la clase UserIdentity que está en el directorio protected/components.
Aunque usualmente en mis aplicaciones suelo definir el id en un estado con el mismo nombre con el fin de llamarlo Yii::app()->user->id, pero bueno, eso ya es convención de cada uno.
Quiero agregar viendo este Post y ampliando el concepto desde la documentación de CAccessControlFilter podemos utilizar diferentes Reglas. Hay una en particular que se llama Expression y desde allí podríamos realizar combinaciones con las validaciones realizadas en authenticate().
De todas formas, pongo en dudas este método de validación a definición de roles. Seguiré profundizando en rbac para mejorar a futuro.
Sería bueno tener como un directorio de ejemplos de códigos, que les parece?