2012-02-20 16 views
8

Me estoy sumergiendo en RBAC al diseñar un sitio nuevo y bastante grande/complejo. Estoy tratando de averiguar si crear una tarea o simplemente una operación con la regla biz.¿Qué son exactamente las "tareas" en el RBAC de Yii?

Ahora, he leído la mayoría si no toda la documentación existente. La documentación actual dice que "una tarea consiste en operaciones". El artículo de wiki de This dice que los diferentes términos son simplemente convenciones de nomenclatura y la única limitación que existe es estructural: los roles deben incluir tareas (u otras funciones); las tareas deben incluir operaciones (u otras tareas) y operaciones es el término atómico que no está compuesto por otras entidades. También he leído las secciones relevantes en los libros "Agile web dev ..." y "Yii cookbook", ambos no arrojan más luz sobre este tema (al menos como se ve a través de mis gafas).

Vamos a mi ejemplo donde voy a presentar la pregunta. En realidad, usemos un ejemplo similar al que se muestra en la mayoría de los recursos de documentación mencionados anteriormente: Digamos que tengo una publicación de blog y quiero/necesito que su autor pueda "actualizar su propia publicación". Ahora, ¿por qué debería ser una tarea como se demuestra comúnmente en los recursos de documentación y no una operación con una regla de negocio?

Creo que la pregunta anterior revela la definición clara de una "tarea" (en el contexto RBAC, por supuesto).

Por favor, ayúdenme a destilar una mejor definición para una tarea de RBC.

EDIT: Me sugirieron las siguientes definiciones de los términos mencionados que ayudan a conceptualizarlos de una manera útil. En resumen y en su forma más simple: operaciones son los componentes básicos. Son los desarrolladores materiales con los que trabajan y solo ellos. Los desarrolladores componen las tareas y además de las operaciones. Roles se componen de tareas, como un conjunto de tareas. Los administradores del sitio deberían tener en cuenta los roles y las tareas: asignar y revocar a los usuarios pero no las operaciones. Esa es una buena manera de ver y comprender esas entidades (roles, tareas y operaciones). ¿Tiene otra opción para conceptualizar de manera diferente? Cualquier comentario será apreciado.

TIA! Boaz.

Respuesta

3

Yo diría lo mismo que usted en la edición de su pregunta. Una tarea es simplemente una composición de operaciones que un usuario puede hacer y que tiene algo en común. Así que tiene por ejemplo las operaciones oList, oCreate y oCreate y oUpdate estas son las operaciones que el desarrollador asigna a las acciones del controlador para control de acceso, donde las dos primeras solo son leídas y las dos tienen acceso de escritura a datos (eso es lo que tienen en común) Por lo tanto, ahora desea combinarlos con las tareas tInspect y tManage que tienen 2 operaciones, la primera puede mostrarse y visualizarse y la segunda puede crearse y actualizarse. Opcionalmente, puede hacer que tInspect sea una subtarea de tManage para que un usuario que tenga tManage pueda enumerar, ver, actualizar y crear, pero normalmente solo le asigna a su función ambas tareas.

1

si hay dos usuarios 1) administrador 2) user

por lo que establecer updatePost papel para la página de actualización.
y el administrador es el padre de updatePost, por lo que el administrador puede actualizar. usuario tiene permiso updateOwnPost.updateOwnPost es padre de updatePost con bizrule.so si bizrule satisface puede actualizar

2

En cuanto a la clasificación del rol -> tarea -> operación, son esencialmente lo mismo, como se puede ver en el código son de la clase CAuthItem . Los nombramos de manera diferente principalmente desde el punto de vista del usuario.

  • Las operaciones solo las utilizan los desarrolladores y representan el mejor nivel de permiso.

  • Las tareas se crean a partir de las operaciones de los desarrolladores. Representan las unidades de construcción básicas para ser utilizadas por los administradores de RBAC.

  • Los administradores y pueden asignar las funciones a los usuarios o grupos de usuarios.

Lo anterior es una recomendación, no un requisito. En general, los administradores solo pueden ver tareas y roles, mientras que a los desarrolladores solo les importan las operaciones y tareas.

mira esto: http://www.yiiframework.com/forum/index.php/topic/2313-rbac-confusion/page_p_16035#entry16035

+0

son estos dos misma persona :) http://www.yiiframework.com/forum/index.php/topic/2313-rbac-confusion/page__view__findpost__p__16035 –

Cuestiones relacionadas