framework example ejemplos yii rbac

example - yii framework+ejemplos



¿Cuál es la forma preferida de gestionar la autorización en YII? (2)

Ahora, soy nuevo en YII y he estado trabajando en autenticación y autorización. Logré hacer la parte de autenticación con éxito y ahora estoy siguiendo el YII RBAC. Aquí estoy confundido un poco. De acuerdo con la documentación que puedo usar

if( Yii::app()->user->checkAccess(''createIssue''))

Para comprobar si el usuario tiene permiso para la acción createIssue . Según mi entendimiento, puedo agregar esto en preFilter () para que la acción compruebe el acceso antes de que se ejecute la acción.

Mi pregunta es: si utilizo el enfoque RBAC, ¿debo seguir teniendo las reglas de acceso definidas en la función de acceso () para el controlador o simplemente permitir a todos los usuarios y verificar el acceso en el filtro previo para la acción individual. Estoy confundido en cuanto a cuál es el camino preferido. Por favor guíame, gracias


RBAC es el hermano mayor de accessRules (), en la familia de métodos de autorización Yii. Es más robusto, potente y generalmente se utiliza en casos de uso más complejos, pero esto depende de sus requisitos y tendencias.

Cuando utiliza RBAC, no necesita (y se beneficia sin) comprobar los permisos utilizando Yry''s accessRules () que utiliza un filtro Yii predefinido. Asegúrese de no perderse la definición del método accessRules (), también debe decirle a Yii que use el filtro ''accessControl'' en los métodos de acción. En resumen, no use ambos. Pierde la directiva de filtros (o los métodos completos, si no tienes otros filtros definidos) y los métodos ''accessRules ()''.

De forma predeterminada, RBAC consultará con respecto a la jerarquía de "elementos de autenticación" y los elementos de autenticación asignados a los usuarios en el DB. Puede administrar la base de datos usted mismo, pero le recomiendo que considere usar varias extensiones preparadas para administrar (solo) las 3 tablas de RBAC. Por ejemplo, RBAM y SRBAC . Ambos no son libres de errores, pero reducen mucho trabajo, en caso de que tenga un árbol de permisos más que triviales.

Por último, pero no menos importante, asegúrese de leer la página relevante en la guía.


RBAC funciona con CController :: accessRules ()

A partir de Yii 1.1.11 puede usar RBAC en el filtro accessRules () . Los documentos proporcionan un ejemplo, pero la esencia es que su regla se ve así:

''roles'' =>array(''itemName'' =>$params),

Donde $params es una matriz opcional de parámetros, solo lo que pasaría a user->checkAccess($itemName, $params) .