Este artículo es una traducción del artículo orginal escrito por Jen Kramer para la Joomla! Community Magazine

 

Este artículo se basa en dos artículos que fueron escritos originalmente para Joomla 1.6. Fue escrito en diciembre de 2011, antes del lanzamiento de la versión 2.5. Sin embargo, se supone que los conceptos de ACL no han cambiado entre estas versiones, aunque puede haber pequeñas diferencias en la interfaz. Una de las innovaciones más importantes de la versión 1.6 son las listas de control de acceso (ACL). Se refiere a quién tiene derecho a hacer qué en el sitio web, incluyendo leer, crear, editar, eliminar o iniciar sesión, además de otros permisos.

 

Joomla ACL

Hay muchas cosas de ACL que sólo tienen relación el frontend del sitio. Por ejemplo, ¿cuándo me conecto al sitio?, ¿qué artículos tengo disponibles? Y si alguien está conectado al sitio, ¿Ven los mismo artículos o ven otros diferentes?

Sin embargo, ACL también se encarga de quién tiene derechos para crear, editar y eliminar contenido; quién puede publicar o despublicar contenidos; quién puede iniciar sesión en el front-end o back-end del sitio; y quién puede realizar cambios en tales componentes, módulos y plantillas.

¡Sólo porque puedas no significa que debas! ACL es complejo y requiere un poco de tiempo para entender exactamente cómo funciona. Para muchos sitios, quizás en la mayoría, puede que no necesites cambiar la configuración predeterminada de Joomla. Sin embargo si estás haciendo un sitio más grande podría ser útil.

Ejemplos de dónde ACL debe plantearse son:

  • Un sitio de una escuela, donde los padres, profesores, estudiantes y el público puede ver diferentes tipos de contenido.
  • Un sitio grande con muchos colaboradores, donde no quieres que la gente cambie el contenido de otras personas.
  • Tienes usuarios que pueden crear o editar el contenido del sitio pero no necesariamente tienen el derecho de publicarlo. O aún más, puedes tener varios grupos de usuarios que necesitan crear y editar contenido que pertenecen a diferentes áreas del sitio.
  • Quieres que un usuario pueda iniciar sesión en el backend del sitio, controlando el acceso a un único componente y nada más.

ACL también se puede utilizar para construir una interfaz de administrador simplificada, eliminando las zonas donde el cliente no tenga que visitar para realizar cambios en el sitio. En Joomla 1.5, se puede hacer un cliente manager, pero que sería capaz de editar cualquier componente, cualquier contenido en el sitio, y realizar cambios en los menús. Con Joomla 1.6 y superiores, se puede afinar ACL para que un cliente pueda tener acceso sólo a determinadas categorías de artículos o artículos específicos), los componentesespecíficos (o ninguno en absoluto), y así sucesivamente. A través de ACL, puedes mejorar la usabilidad del backend para tu cliente.

ACL en Joomla 1.5

Joomla 1.5 tiene un sistema de ACL limitado y fijo. Si has trabajado con Joomla 1.5, has visto cómo se puede establecer un elemento de menú o un artículo para ser visto por los usuarios públicos, registrados, o "especial" (los autores y los anteriores). Del mismo modo, probablemente sabes que los usuarios registrados no pueden acceder al backend de un sitio Joomla, pero sí un super administrador. La ACL de Joomla 1.5 es jerárquica, lo que significa que cada grupo de usuarios hereda los permisos de los grupos anteriores.

Una explicación completa de los grupos de Joomla 1.5 se puede encontrar en brian.teeman.net. Grupos incluidos son public, registered, author, editor, publisher, manager, administrator, y super administrator.

Los niveles de acceso de Joomla 1.5 son public, registered, y special. Public indica que cualquiera puede ver el contenido. Registered indica que aquellos con acceso de usuarios registrados y superior pueden ver el contenido. Special es para grupos de Autor y superior. No hay manera de agregar niveles adicionales de acceso, ni hay ninguna manera de segmentar audiencias con más precisión.

ACL en Joomla 1.6 o superior: Información general

ACL en Joomla 1.6+ no es necesariamente jerárquica. Puedes crear grupos con los permisos que desees. Estos permisos se heredan de los padres en el caso de grupos, pero no se heredan en el caso de los niveles de acceso. Como mínimo, todos los grupos de usuarios son hijos del grupo Public.

Hay cuatro aspectos en el sistema de ACL en Joomla 1.6+. Estos incluyen el usuario, el grupo, los permisos básicos, y los niveles de acceso. He representado a éstos en el siguiente diagrama para describir su relación, y voy a ir a través de cada uno en detalle.

Joomla ACL

Usuario

Esta es la más fácil de entender - eres tú, o alguien más visitando el sitio web. Un usuario no tiene que tener una cuenta para ser considerado como un usuario del sitio web. Ese usuario sigue siendo considerado como un usuario público. Los usuarios individuales pueden ser asignados a uno o varios grupos. No se puede asignar permisos básicos directamente a los usuarios; éstos se asignan al grupo.

Permisos básicos

Los permisos básicos se asignan al grupo, no a usuarios individuales. (Si desean permisos específicos para un solo usuario, tendrías que crear un grupo para ese usuario único).

Permisos básicos incluyen:

  • Inicio de sesión en el sitio: la capacidad de iniciar sesión en el frontend de la página web.
  • Inicio de sesión de administrador: la capacidad de acceder al backend de la página web.
  • Acceso sin conexión: Cuando el sitio se desconecta (en Configuración Global - Sitio), controla quién puede acceder a ver el sitio
  • Súper Administrador: privilegios de administrador (root), como cambios de configuración global. Se sobreescriben las otras configuraciones de ACL, dando a este grupo de usuarios acceso total a todos los sistemas de Joomla.
  • Acceso al componente: la capacidad para llegar a las áreas específicas en el backend (menús, gestor de artículos, gestor de los medios, componentes, etc)
  • Crear: capacidad de crear contenido nuevo
  • Eliminar: capacidad de eliminar el contenido (a la papelera)
  • Editar: la capacidad para editar el contenido existente, no necesariamente propio
  • Editar estado: capacidad de cambiar de estado entre publicado, no publicado, eliminado, archivado.
  • Editar propio: capacidad de editar su propio contenido (pero no el contenido de los demás)

Los permisos básicos se establecen en la configuración global, en Sitio - Configuración Global, haciendo clic en la ficha Permisos.

Entendiendo los permisos básicos en Configuración Global

Permisos básicos Joomla Configuración Global

En el administrador de grupo que se muestra arriba, y en todos los demás grupos, excepto para Public, cada uno de los menús desplegables que se muestran aquí tiene tres opciones: Permitido, Denegado y Heredado. El grupo Public es el padre de todos los grupos por debajo. Los menús desplegables del grupo Public tienen tres valores, que incluyen Permitido, Denegado, y Sin asignar.

  • Permitido significa que algo está explícitamente permitido o autorizado para un grupo específico.
  • Denegado significa que algo está explícitamente denegado o no permitido para un grupo específico.
  • Heredado significa que algo se deriva de un grupo principal. Heredado no se encuentra disponible como una opción para el grupo Public.
  • Sin asignar significa que el permiso aún no se ha configurado. Sin asignar solo está disponible para el grupo Public y sólo en la configuración global.

Una explicación completa de los permisos de cada grupo de usuarios se explica a continuación.

Nota especial acerca de los permisos básicos asignados en la configuración global

Cuando los permisos básicos se establecen en el nivel de configuración global, se llevan a través de todo el sitio y a través de todas las áreas del sitio. Por ejemplo, un autor tiene el permiso Crear asignado globalmente. Ese autor puede crear un artículo en cualquier categoría en el sitio web. El permiso Crear también significa que podría crear un enlace web nuevo desde el frontend de la página web, si el componente de enlaces web está en uso. Puedes querer pensar con cuidado acerca de dónde se asignan los permisos dentro de Joomla. No tienes que establecer el permiso Crear en la configuración global si quieres un grupo de usuarios pueda crear artículos y categorías. También puedes asignar este permiso dentro de las opciones en el Administrador de artículos. Voy a ir más a fondo acerca de dónde asignar permisos en artículos posteriores.

Todo a Denegado

Podrías tener la tentación de establecer todos estos menús desplegables específicamente a Permitido o Denegado ya que es más fácil de leer.

Sin embargo, te animaría firmemente a no hacer eso.

Si se establecen los permisos en Denegado, incluso estableciendo Permitido a un grupo de usuarios de mayor nivel, Denegado se heredaría por el nivel más bajo y anularía la opción Permitido.

Por ejemplo, si estableces en el menú deplegable del grupo Public a Denegado para todo, no hay razón para tener gurpos de más alto nivel! Todo el mundo sería denegado a hacer cualquier cosa en el sitio web para siempre con la excepción de los Super Usuarios.

Grupo de usuario

Un grupo de usuario (también llamado grupos) es un conjunto de usuarios que comparten los mismos permisos. Usando los grupos de Joomla 1.5 como ejemplo, el grupo Publisher tiene derechos para hacer login en el frontend del sitio web, crear nuevos artículos, editar artículos y publicar o despublicar artículos. Cualquier usuario incluído en grupo Publisher tienen los mismos permisos para realizar esas acciones.

A diferencia de Joomla 1.5, un usuario puede ser asignado a multiples grupos. Un usuario puede formar parte del grupo Publisher y también puede estar incluido en el grupo de administradores por ejemplo.

Es posible crear tus propios grupos y asignarles los permisos que necesites. Los permisos básicos entre grupos se pueden heredar.

Un grupo podría ser creado por dos razones diferentes. Una sería para ver el contenido del frontend del sitio web. La otra sería para especificar que tipo de contenido puede ser creado, editado, eliminado, publicado o despublicado, o gestionado por ese grupo.

Un usuario que visita el sitio web es considerado un miembro del grupo público.

El grupo Public no debería ser borrado, pero el resto de grupos si pueden serlo. (Sin embargo, te recomendaría mantenerlos, porque te dan un buen modelo para estudiar como funciona la herencia de permisos).

Los grupos predeterminados

Por defecto, Joomla 1.6 y superiores, viene configurado con los mismo grupos que aparecen en Joomla 1.5. Los grupos y sus permisos básicos son los siguientes:

  • Public: puede ver el contenido del frontend de la página web que no se esconda detrás de un inicio de sesión. Los permisos por defecto para el grupo Public están Sin asignar. Como era de esperar, los usuarios del grupo Public no están capacitados para iniciar sesión en el frontend de la página web, entre otros persmisos. No se les ha denegado explícitamente hacer esto, sin embargo - están denegados porque no se ha configurado el permiso explícitamente.
  • Registered: sólo pueden iniciar sesión en el frontend del sitio. Los usuarios del grupo Registered son hijos del grupo Public. Se le ha asignado el permiso de Inicio de sesión.
  • Author: Los autores pueden crear su propio contenido con permisos Crear y Editar propio. Los autores son hijos del grupo Registered y heredan el permiso para iniciar sesión.
  • Editor: Los editores pueden modificar cualquier contenido del sitio con el permiso Edit. Los editores son hijos del grupo Author y heredan los permisos de creación y edición de artículos y el permiso de inicio de sesión.
  • Publisher: pueden publicar, despublicar, archivar o eliminar los contenidos por medio del permiso Editar estado. Publishers son hijos del grupo Editor y heredan los permisos de edición, creación y editar propio y el permiso de inicio de sesión.
  • Manager: son hijos de grupo Public, por lo que todos los permisos asignados anteriormente a Registered, Author, Editor y Publisher no se aplican a Manager. Deben reasignarse todos individualmente.
  • Administrator: El grupo administrator puede editar y configurar las extensiones con el permiso Acceso al componente. Los administradores son hijos de grupo Manager y heredan sus permisos.
  • Super Users: El super usuario puede cambiar la configuración global así como otras habilidades con el permiso de Super Administrador. El grupos Super Users es hijo del grupo Public. Sin embargo, sólo tienen el permiso de Súper administrador. Este permiso sobreescribe a todos los demás, por lo que el super usuario tiene acceso a todas las características de Joomla.

Los grupos predeterminados están representados en la configuración global (en Sitio -> Configuración Global -> Permisos)

Nivel de acceso

El nivel de acceso se refiere a quién puede ver qué contenido en el frontend del sitio web. Básicamente, esto implica permisos de lectura en el frontend del sitio.

Históricamente ha habido tres niveles de acceso: público (cualquiera puede ver), registrado (Debe acceder para ver el contenido) o Especial (es necesario registrarse como autor o un grupo de mayor nivel para ver el contenido).

Estos niveles de acceso están aún presentes en Joomla 1.6+ como los niveles predeterminados, pero también puedes crear tus propios niveles de acceso.

Los niveles de acceso no heredan sus permisos. Si un artículo se hace visible por los editores sólo mediante un nivel de acceso personalizado, ni siquiera el super administrador podrá ver el artículo. Debes asignar a super users para que también sean parte del grupo editores para ver este artículo en el frontend del sitio web, o debes asignar a super user y editores el mismo nivel de acceso para ver el contenido. (En cualquier caso, como super usuario puedes seguir modificando el artículo en el backend.)