En Joomla todos los usuarios pertenecen, obligatoriamente, a un grupo. A su vez, cada grupo dispone de unos determinados permisos y tiene asignado uno o varios niveles de acceso. Combinando estos cuatro elementos (usuarios, grupos, permisos y niveles de acceso) podremos delimitar el acceso de los usuarios a los contenidos de nuestra página, permitiendo o denegando el acceso al frontend y al backend o solo a una parte concreta de éstos.
Con respecto a los niveles de acceso, en Joomla 2.5 encontraremos las siguientes novedades con respecto a la versión 1.5:
- Grupos de usuarios ilimitados.
- Un usuario puede ser asignado a varios grupos.
- Niveles de acceso ilimitados.
- Los grupos se asignan a los niveles de acceso, existiendo un número ilimitado de combinaciones.
Podemos dividir los tipos de niveles de acceso en dos grupos: lo que los usuarios pueden ver y lo que pueden hacer.
El primer caso se refiere al frontend, los elementos del menu, artículos, módulos, etc. En la propiedad “Acceso” de los elementos del frontend, será donde establezcamos el nivel de acceso del elemento, que determinará qué usuarios podrán ver un determinado contenido y cuáles no.
Figura 1: Nivel de acceso del contenido
El segundo caso se refiere a las acciones que los usuarios pueden realizar en nuestro sitio web. Aquí entraría tanto el frontend (ej: edición de artículos desde la web) como el backend(acceso a la administración e interacción con sus secciones).
Para establecer un determinado nivel de acceso, primero tendremos que configurar los permisos que tendrá cada uno de los grupos de usuarios que compondrán dicho nivel.
En Joomla 2.5 encontraremos cuatro niveles de permisos, partiendo de un nivel superior y concretando a medida que nos adentramos en la jerarquía:
- Configuración global. Determinan los permisos por defecto para cada grupo y acción.
Figura 2: Permisos de la configuración global.
- Componente. Cada componente instalado en Joomla ofrece la posibilidad de configurar sus propios permisos. Accederemos a esta configuración pulsando en el botón “Opciones” del panel de control del componente.
Figura 3: Permisos del componente
- Categoría. Muchos componentes de Joomla se organizan en categorías. Podremos establecer los permisos de cada una de estas categorías editando la categoría y desplazándonos hasta la parte inferior de la pantalla de edición.
Figura 4: Permisos de la categoría
- Artículo. Al igual que en los casos anteriores, podremos establecer los permisos de manera individual para cada artículo. Para ello iremos hasta la parte final de la pantalla de edición del artículo.
Figura 5: Permisos de artículo
Dentro de estos niveles que acabamos de describir, veremos que existen varias acciones cuyos permisos podremos configurar:
- Acceso al sitio. Permite a los usarios del grupo acceder al front-end.
- Acceso a la administración. Permite a los usuarios acceder al back-end.
- Acceso offline. Permite acceder al sitio cuando no está en línea.
- Super admin. Permite a los usuarios realizar cualquier acción en todo el sitio.
- Acceso al componente. Permite acceder a las pantallas de administración del componente.
- Crear. Permite la creación de nuevos objetos.
- Eliminar. Permite la eliminación de objetos existentes.
- Editar. Permite la edición de objetos.
- Editar estado. Permite cambiar el estado de un objeto (publicado, despublicado, eliminado, archivado).
- Poderse editar. Permite a cada usuario editar los objetos creados por el mismo.
- Configurar. Es un permiso exclusivo de las extensiones y no se encuentra en la configuración global. Permite al usuario editar las opciones de la extensión.
Figura 6: Lista de permisos
Veremos que para establecer los permisos existen cuatro estados posibles:
- No establecido. Se aplica únicamente a los permisos de la configuración global. Supone una denegación del permiso, pero puede ser sobreescrito por el permiso de un grupo hijo.
Figura 7: Permiso no establecido
- Heredado. Se hereda la configuración del grupo padre.
Figura 8: Permiso heredado
- Denegado. Deniega la acción para el grupo en que nos encontremos y para todos sus grupos hijos.
Figura 9: Permiso denegado
- Permitido. Permite la acción al grupo en que nos encontremos y a todos sus grupos hijos. No tiene validez si en alguno de los grupos de nivel superior el permiso está establecido como denegado.
Figura 10: Permitido
La combinación de todos los elementos hasta aquí descritos, será la que nos permita establecer los niveles de acceso, decidiendo a dónde podrán acceder los usuarios y determinando las acciones que podrán realizar.
Ejemplo: Acceso al backend
En este ejemplo veremos cómo crear un grupo de usuarios con acceso limitado al backend de nuestro sitio.
En primer lugar crearemos el grupo de usuarios:
Figura 11: Crear grupo de usuarios
A continuación añadiremos los usuarios al grupo:
Figura 12: Añadir usuarios al grupo
Si nos fijamos en la configuración de los módulos del backend (gestor de módulos > administrador) veremos que su acceso está establecido en especial. Esto quiere decir que los grupos que tengan este nivel de acceso podrán ver los módulos del backend (si cuentan además con los permisos adecuados).
Figura 13: Gestor de módulos
Teniendo esto en cuenta asignaremos a nuestro nuevo grupo este nivel de acceso.
Figura 14: Asignar nivel de acceso
Finalmente configuraremos los permisos del grupo, tanto en la configuración global de nuestro sitio como en la configuración de los componentes.
Figura 15: Configuración de permisos del grupo
Si un usuario de este grupo accede ahora al backend, tendrá un acceso limitado al mismo, pudiendo realizar acciones únicamente sobre los elementos en los que le hemos dado permiso.
Figura 16: Acceso limitado al back-end
Ejemplo: Acceso al frontend
En este ejemplo veremos cómo crear un grupo que pueda acceder a mas opciones del frontend que el resto de usuarios.
En primer lugar crearemos el grupo:
Figura 17: Creación del grupo del front-end
Asignamos los usuarios al grupo:
Figura 18: Asignar usuarios al grupo
Creamos un nuevo nivel de acceso y le asignamos el grupo:
Figura 19: Crear nivel de acceso
Establecemos los permisos del grupo:
Figura 20: Permisos del grupo
Ahora podremos establecer el nivel de acceso que hemos creado en cualquier elemento del frontend, por ejemplo en algunos elementos del menú principal:
Figura 21: Cambiar nivel de acceso
Desde este momento, los usuarios que no pertenezcan al grupo que hemos creado, no podrán acceder a los elementos del menú a los que hemos restringido el acceso.
Figura 22: Frontend visto por un usuario normal
Sin embargo, los usuarios que sí pertenezcan al grupo podrán acceder sin problema.
Figura 23: Frontend visto por un usuario del grupo
Enlace | Usuarios y permisos (1): Gestión de usuarios
Enlace | ACL en Joomla 2.5