Entendiendo los Permisos en OpenCMS v.7

Tue Feb 02 13:58:00 CET 2010       Ismael Calvo       Administración, OpenCms

1. DEFINICIÓN DE TÉRMINOS Y FUNCIONAMIENTO

En esta sección se detallan los términos y el funcionamiento de los permisos en OpenCMS v.7
En las siguientes secciones se muestra un requisito de uso a modo de ejemplo y su resolución.

1.1 CÓMO FUNCIONAN LOS PERMISOS

Existen tres estados posibles para cada tipo de permiso: 

  1. Permitido (Alolwed): Ofrece permiso
  2. Sin permiso (No Allowed y No Denied): Se trata de una denegación suave, esto es una denegación que puede ser sobrescrita en una subcarpeta. Eses es el tipo de denegación más habitual para niveles superiores del árbol.
  3. Denegado (Denied): Se trata de una denegación dura que se impone sobre todos los demás estados de permiso en todos los niveles inferiores del árbol, de modo que incluso marcando  una subcarpeta con "Permitir", persiste sobre ella la regla de denegación. Lo normal es usar este estado en nivele muy inferiores del árbol de carpetas.

En OpenCms de forma predeterminada el grupo Users tiene permiso de escritura. Para cambiar esto, debe ir hasta el nivel de sites, seleccionar la carpeta del sitio web (por ejemplo, /sites/misitioweb), agregar manualmente el grupo de usuarios a la lista de permisos y establecer los permisos que desee. Luego seleccione Sobrescribir heredado (Overwrite inherited) y Heredar en subcarpetas (Inherit on subfolders) para que todo el sitio  herede los permisos seleccionados.

Los administradores están autorizados a hacer todo y todas las comprobaciones de permisos son ignoradas.

1.2 GRUPOS POR DEFECTO

Se encuentran definidos los siguientes grupos en OpenCMS:

  1. Invitado (Guest): Ve el contenido web exclusivamente.
  2. Usuarios (Users): Puede acceder al área de trabajo y ver el contenido Publicado (Online) y Sin Publicar (Offline) del proyecto. Por lo general, tiene permiso de vista, lectura, escritura y control (edición de propiedades del archivo).
  3. Gestores de Proyecto (Projectmanagers): pueden hacer todo lo que Usuarios hace, pero también puede publicar los archivos del proyecto
  4. Administradores (Administrators): Puede hacer todo.

1.3 PERMISOS BÁSICOS

  1. Vista (View – v): EL derecho a ver el contenido y las carpetas en el espacio de trabajo.
  2. Lectura (Read – r): El derecho a leer el contenido de un recurso
  3. Escritura (Write – w): El derecho a escribir el contenido de un recurso
  4. Control (control – c): El derecho a asignar permisos a un recurso
  5. Publicación Directa (Direct Publish – d): El derecho a publicar un recurso
  6. Responsable (Responsible -r): No es un permiso básico propiamente dicho, aunque se incluya en esta categoría. Si se asigna a un grupo o usuario este permiso, serán informados por email de las modificaciones. 

1.4 ROLES

Los roles son usados en OpenCMS para gestionar el acceso a ciertas funciones. Cuando una función protegida es accedida, OpenCMS chequea los roles del usuario. La función se ejecutará sólo si el usuario tiene los roles requeridos. OpenCMS usa los siguientes roles:


Rol Dependencia Descripción
Administrador Raíz (Root Administrator) Ninguna Los usuarios con este rol tienen todos los permisos en el sistema
Administrador (Administrator) Administrador Raíz Los usuarios con este rol tienen todos los permisos en la unidad organizativa dada.
Gestor de cuentas (Role Account manager) Administrador Los usuarios con este rol pueden gestionar usuarios y grupos.
Gestor de proyectos (Role Project manager) Administrador Los usuarios con este rol pueden gestionar proyectos.
Gestor de recursos VFS (Role  VFS resource manager) Administrador Los usuarios con este rol pueden gestionar todos los recursos de la unidad organizativa dada, cualquier comprobación de permisos es ignorada.
Rol Desarrollador de plantillas (Template developer) Gestor de recursos Los usuarios con este rol pueden gestionar ficheros jsp.
Usuario del entorno de trabajo (Role Workplace user) Administrador Raíz Los usuarios con este rol pueden iniciar sesión en el entorno de trabajo.
Gestor de base de datos (Role Database manager)  Administrador Raíz Los usuarios con este rol pueden gestionar módulos e importar/exportar datos.
Rol Gestor del entorno de trabajo (Workplace manager)
Administrador Raíz
Los usuarios con este rol pueden gestionar tareas programadas, índices de búsqueda, definiciones de propiedades, histórico de los recursos, y las herramientas del entorno de trabajo.


La definición de los roles es jerárquica. Cuando se le otorga un rol a un usuario, se considera que también posee todos los roles en los niveles inferiores del árbol. 

1.5 RELACIÓN ENTRE USUARIO, GRUPOS, ROLES Y PERMISOS

Los grupos por defecto (invitado, usuarios, gestores de proyectos y administradores) tienen asignados roles por defecto. Al asignar a un grupo por defecto un usuario, éste adquiere los roles del grupo, pero pueden ser modificados para cada usuario en particular si se desea.

Grupos por Defecto Roles
Invitado (Guest) Ninguno
Usuarios (Users) Usuario del entorno de trabajo (Role Workplace user)
Gestores de proyectos (Projectmanagers) Usuario del entorno de trabajo (Role Workplace user) 
Gestor de proyectos (Role Project manager)
Administradores (Administrators) Todos

Por defecto se asignan los siguientes permisos al sitio (/sites/default):

En OpenCms de forma predeterminada el grupo Users tiene permiso de escritura. Para cambiar esto, debe ir hasta el nivel de sites, seleccionar la carpeta del sitio web (por ejemplo, /sites/misitioweb), agregar manualmente el grupo de usuarios a la lista de permisos y establecer los permisos que desee. Luego seleccione Sobrescribir heredado (Overwrite inherited) y Heredar en subcarpetas (Inherit on subfolders) para que todo el sitio  herede los permisos seleccionados.

Los administradores están autorizados a hacer todo y todas las comprobaciones de permisos son ignoradas.

2. EJEMPLO DE USO

Se definen una serie de ejemplos con la intención de cubrir los usos comunes de la funcionalidad de permisos de OpenCMS v.7.

2.1 GESTIÓN DE UN PERIÓDICO DIGITAL

En el periódico digital “Sanidad Digital”, se ejecuta el siguiente procedimiento de publicación de noticias de pediatría. Existe un editor que redacta la noticia en la sección de pediatría. Una vez redactada, la noticia debe pasar un control de calidad realizado por el departamento de redacción periódica. Una vez dado el visto bueno por el departamento de redacción, el jefe de pediatría, que sólo tiene acceso a la sección de pediatría, debe publicar la noticia. Ahora los lectores de “Sanidad Digital” pueden disfrutar de su lectura en la web.

2.2 DETECTAR LOS ROLES Y PERMISOS

En el procedimiento descrito se detectan los siguientes roles y permisos: 

  1. Editor: Tiene permisos de Vista, Lectura y Escritura sobre los recursos de pediatría.
  2. Publicador: El jefe de pediatría tiene permisos de Vista, Lectura y Publicación Directa sobre los recursos de pediatría.
  3. Revisor: El departamento de redacción tiene permisos de Vista, Lectura y Escritura sobre todo el sitio. 

2.3 GESTIÓN DE LOS PERMISOS

Inicialmente hay que quitar los permisos de escritura al grupo de Usuarios (Users) En la carpeta /sites/default/portaldigital se asignan los siguiente permisos.

Ahora los miembros del grupo Usuarios, sólo pueden acceder con permisos de Vista y Lectura a toda la web.
Se debe crear un usuario editor y un grupo Editores. Al usuario editor se le asignan como miembro del grupo de Usuarios y Editores. Y después, en la carpeta /sites/default/portaldigital/pediatría se asignan los siguientes permisos al grupo Editores.

Ahora los Editores tienen permiso de escritura en pediatría y pueden crear las noticias.

Al jefe de departamento de pediatría se le debe crear un usuario con permisos de publicación directa sobre los recursos de pediatría. Para ello, se crea un usuario publicador y un grupo Publicadores. Al usuario publicador se le asigna como miembro del grupo de Usuarios y Publicadores. Y después en la carpeta /sites/default/portaldigital/pediatría se asignan los siguientes permisos al grupo Publicadores

Ahora los Publicadores tienen permiso de publicación sobre los recursos de pediatría.

Por último hay que asignar permisos de Vista, Lectura, Escritura al departamento de redacción periodística sobre todo el sitio. Para ello creamos un usuario revisor y un grupo Revisores. Al usuario revisor de le asigna como miembro del grupo de Usuarios y Revisores. Y después en la carpeta /sites/default/portaldigital de asignan los siguientes permisos al grupo Revisores.

Ahora los Revisores tienen permiso de Vista, Lectura y Escritura sobre toda la web.