Autorización y Roles

David
11 de Mayo del 2006
Hola,

Estoy intentando hacer un archivo XML que configure los accesos a determinadas partes de mi aplicación. La aplicación es una intranet a la que deben acceder diversos departamentos de mi empresa. De momento, mi archivo XML es el siguiente:

<menu>
<command id="publications" label="Publicaciones" url="" roles="administrador, publicaciones-administrador, publicaciones-publicador, publicaciones-buscador">
<submenu>
<subcommand id="publications-new" label="Nuevo" url="" roles="administrador, publicaciones-administrador, publicaciones-publicador" />
<subcommand id="publications-search" label="Buscar" url="" roles="administrador, publicaciones-administrador, publicaciones-buscador" />
</submenu>
<items>
<item department="RRHH">
<subcommand id="publications-detail" label="Ver detalle" icon="" url="" roles="administrador, publicaciones-administrador, publicaciones-rrhh-administrador, publicaciones-observador" />
<subcommand id="publications-update" label="Modificar" icon="" url="" roles="administrador, publicaciones-administrador, publicaciones-rrhh-administrador" />
<subcommand id="publications-remove" label="Eliminar" icon="" url="" roles="administrador, publicaciones-administrador, publicaciones-rrhh-administrador" />
</item>
<item department="Prensa">
<subcommand id="publications-detail" label="Ver detalle" icon="" url="" roles="administrador, publicaciones-administrador, publicaciones-prensa-administrador, publicaciones-observador" />
<subcommand id="publications-update" label="Modificar" icon="" url="" roles="administrador, publicaciones-administrador, publicaciones-prensa-administrador" />
<subcommand id="publications-remove" label="Eliminar" icon="" url="" roles="administrador, publicaciones-administrador, publicaciones-prensa-administrador" />
</item>
</items>
</command>
</menu>

Se trata de un menú donde las opciones principales están definidas por la etiqueta <command>. Las opciones secundarias se definen dentro de <submenu>. Por ultimo, dentro de <items> se define lo que se puede hacer con cada item de la lista que aparecerá cuando el usuario haga una búsqueda. Dependiendo del departamento al que pertenezca el item, se definen unos roles u otros.

Para cada cosa se definen los roles que tienen acceso a ello.

- administrador (acceso a todo)
- publicaciones-administrador (acceso a todo lo relacionado con las publicaciones)
- publicaciones-publicador (permite añadir una nueva publicación)
- publicaciones-buscador (permite hacer búsquedas de publicaciones)
- publicaciones-observador (permite ver el detalle de un item)
- publicaciones-rrhh-administrador (permite eliminar y modificar los items del departamento de RRHH)
- publicaciones-prensa-administrador (permite eliminar y modificar los items del departamento de Prensa)

Esto son todos los Roles que tengo hasta ahora. Tendría que añadir más roles para noticias, cursos, etc. y para el resto de departamentos.

A parte de los roles, un empleado siempre podrá administrar sus items (los que él a publicado).

Creeis que este archivo XML está bien pensado? o cambiariais algo? Como veis el sistema de definir los roles así? lo malo es que al final tendré muchisimos roles, pero no se me ocurre otra manera.

Un saludo