J3.x

Tutorial Lista de Control de Acceso (ACL)

From Joomla! Documentation

This page is a translated version of the page J3.x:Access Control List Tutorial and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎eesti • ‎français • ‎Bahasa Indonesia • ‎Nederlands • ‎Türkçe
Joomla! 
3.x
series

Descripción de ACL en la Versión Joomla 3.x

Esta sección describe todos los cambios principales en ACL entre la serie de versiones 2.5 y 3.x (que incluirá versiones futuras). La siguiente tabla resume los cambios desde la versión 2.5.

Versión 2.5 Versión 3.9
Grupos Ilimitados Grupos definidos por el usuario Igual que 2.5
Usuarios y Grupos Un Usuario puede ser asignado a varios grupos Igual que 2.5
Niveles de Acceso Ilimitados Niveles de Acceso definidos por el usuario Igual que 2.5
Niveles de Acceso y Grupos Los grupos son asignados a los Niveles de Acceso. Cualquier combinación de Grupos pueden ser asignadas a cualquier Nivel de Acceso. Igual que 2.5

ACL independiente para Ver y Hacer

El sistema ACL de Joomla puede ser pensado como dividido en dos sistemas completamente independientes. Uno de los sistema controla que cosas pueden ver los usuarios en el sitio. El otro controla que cosas pueden hacer los usuarios (que acciones puede tomar un usuario). La ACL para cada uno es diferente.

Controlar Que Pueden Ver los Usuarios

La configuración para controlar que pueden ver los usuarios se hace de la siguiente manera:

  • Crea un conjunto de Niveles de Acceso de acuerdo a las Categorías y/o la combinación de categorías que desees y que sólo los usuarios registrados podrán ver. N.B. no asignes grupos de usuarios a los nuevos Niveles de Acceso en este momento.
  • Crea un Grupo de usuarios, con 'Registrado' como los padre, para cada Nivel de Acceso. Utilizando los mismos nombres tanto para los Grupos de usuarios como los Niveles de Acceso para evitar confusiones en el futuro.
  • Edita tus nuevos Niveles de Acceso y asigna el (nuevo) Grupo de usuarios que corresponda a cada uno de ellos. También puedes desear asignar el Grupo de Super Usuarios (y/o otros Grupos de Usuarios de forma predetermianda, pero no el Grupo de Usuarios 'Invitados') a todos los nuevos Niveles de Acceso
  • Asigna a cada ítem a ser visto un Nivel de Acceso. Los ítems incluyen elementos de contenido (artículos, contactos, etc), elementos de menú y módulos.

Cada vez que un usuario se acerca a ver un elemento en una página de Joomla!, el programa comprueba si el usuario tiene acceso al ítem, de la siguiente manera:

  1. Crea una lista de todos los Niveles de Acceso a los que tiene acceso el Usuario, basado en todos los Grupos a los que pertenece el Usuario. También, si un grupo tiene un grupo padre, los niveles de acceso para el grupo padre también se incluyen a la lista.
  2. Comprueba si el Nivel de Acceso para el em (artículo, módulo, elemento del menú, y así sucesivamente) está en la lista. Si esta, entonces el ítem se mostrará al usuario. Si no esta, entonces el elemento no se muestra.

Ten en cuenta que los Niveles de Acceso se establecen por separado para cada Grupo y no se heredan de un grupo padre del grupo.

Controlar Que Pueden Hacer los Usuarios

El sistema de configuración sobre lo que los usuarios en un Grupo de usuarios pueden hacer (qué acciones se pueden tomar en un determinado punto) es configurado con los Permisos de la pestaña Configuración Global y la pestaña de Permisos de la pantalla de Opciones de cada componente. Los permisos también se pueden configurar en el nivel de Categoría de componentes principales y en el nivel de Artículo para los artículos.

  • Si deseas que los usuarios conectados puedan Crear, Eliminar, Editar Estado o Editar sus Propia ítem, para Categorías específicas entonces:
    • Crea un Grupo de Usuarios con uno de los Grupos de Usuarios, que tiene Acceso a la Categoría (o Categorías), como Padre; este nuevo Grupo de Usuarios será el que vamos a modificar.
    • Asigna a tu nuevo Grupo de usuarios el Nivel de Acceso adecuado(s). A continuación, cambia los permisos necesarios a tu nuevo Grupo de Usuarios, ya sea a nivel global o por Categoría/Artículo.
      • Esto se debe a que es más fácil elevar los permisos por Componente/Categoría/Artículo donde se necesitan permisos adicionales, que eliminar los permisos de los otros Componentes/Categorías/Artículos.
        • (ejemplo: Tienes 10 Categorías, pero deseas dar permiso Crear para 1 sola. Si estableces permisos Globales para Permitir Crear a un grupo tendrás que quitar el permiso Crear para todas las demás categorías. Y tendrás que quitar el permiso Crear del grupo para cualquier nueva Categoría que agregues a futuro.)
    • Sólo crea un Grupo de Usuarios con uno de los Grupos de Usuarios predeterminado como padre, si ninguno de ellos tiene los permisos exactos que necesitas y deseas para todas las Categorías

Ten en cuenta que esta configuración es independiente de la configuración para la visualización, pero es necesario asignar a un Grupo de Usuarios el(los) Nivel(es) de acceso adecuado(s) para que el usuario de ese Grupo para contar con esos Permisos.

Cuando un usuario quiere iniciar una acción específica sobre un ítem del componente (por ejemplo, editar un artículo), el sistema (después de comprobar que el Grupo del usuario tiene acceso) comprueba el permiso para esta combinación de usuario, ítem y acción. Si está permitido, el usuario puede proceder. De lo contrario, la acción no será permitida.

El resto de este tutorial explica cómo podemos controlar lo que los usuarios pueden hacer --que permisos de acción tienen.

Acciones, Grupos y Herencia

El otro lado de la ACL es la concesión de permisos a los usuarios para tomar acciones sobre los objetos.

series 3.x
Grupos y Acciones Las acciones permitidas a cada grupo son definidas por el administrador del sitio.
Alcance del permiso Se pueden establecer permisos en varios niveles de jerarquía: Sitio, Componente, Categoría, Objeto.
Herencia de Permisos Los permisos pueden ser heredados de los Grupos y Categorías padres

Cómo Funcionan los Permisos

Hay cuatro permisos posibles para las acciones, como se indica a continuación:

  • Sin establecer: de forma predeterminada es "negar" pero, a diferencia del permiso Denegar, este permiso puede ser reemplazado por la configuración "Permitir" a un grupo hijo o de un nivel inferior en la jerarquía de permisos. Este permiso sólo se aplica a la Configuración Global de los permisos.
  • Heredar: Hereda el valor de un Grupo padre o de un nivel más alto en la jerarquía de permisos. Este permiso se aplica a todos los niveles, excepto al nivel Global de Configuración.
  • Denegar: Niega esta acción para este nivel y grupo. IMPORTANTE: Esto también niega esta acción para todos los grupos hijos y todos los niveles inferiores en la jerarquía de permisos. Poner Permitir a un grupo hijo o de un nivel inferior no tendrá ningún efecto. La acción siempre será negado para cualquier miembro del grupo hijo y cualquier nivel inferior en la jerarquía de permisos.
  • Permitir: Permite esta acción para este nivel y grupo y para los niveles más bajos y grupos secundarios. Esto no tiene ningún efecto si un grupo superior o nivel se establece como Permitir o Denegar. Si un grupo o nivel superior se ajusta a Denegar, entonces este permiso siempre será denegado. Si un grupo o nivel superior está configurado como Permitir, entonces este permiso ya estará permitido.

Jerarquía de Niveles de Permisos

Los permisos de acción en la versión 2.5+ se pueden definir hasta cuatro niveles, de la siguiente manera:

  1. Configuración Global: determina los permisos predeterminados para cada acción y grupo.
  2. Componente Opciones->Permisos': puede anular los permisos predeterminados para este componente (por ejemplo, Artículos, Menús, los Usuarios, Banners, etc).
  3. Categoría: Puede anular los permisos predeterminados de los objetos en una o más categorías. Se aplica a todos los componentes con categorías, incluyendo Artículos, Banners, Contactos, fuentes de Noticias y Enlaces web.
  4. Artículo: Puede anular los permisos de un artículo específico. Este nivel sólo se aplica a los artículos. Otros componentes sólo se permiten los tres primeros niveles.

Configuración Global

A la que se accede desde Sistema (Administrador) → Configuración Global → Permisos. Esta pantalla te permite establecer el nivel superior de permisos para cada grupo por cada acción, como se muestra en la siguiente captura de pantalla.

Screenshot global acl J3 tutorial-es.png

Las opciones para cada valor son: Heredado, Permitido o Denegado. La columna Configuración calculada muestra la configuración aplicada. No Permitido (valor predeterminado), Permitido o Denegado.

Trabaja en un Grupo a la vez abriendo el control deslizante para ese grupo. Cambia los permisos en los cuadros de lista desplegable de la columna Seleccionar la nueva configuración.

Ten en cuenta quela columna de Configuración calculada se actualizará hasta que pulses el botón Guardar en la barra de herramientas. Para comprobar que la configuración es la deseas, presiona el botón Guardar y comprobar el valor de la columna Configuración calculada.

Componente: Opciones->Permisos

A los que se accede para cada componente haciendo clic en el icono Opciones en la barra de herramientas. Esta pantalla es similar a la pantalla de Configuración Global anterior. Por ejemplo, haciendo clic en el icono Opciones de la barra de herramientas en el Gestor de Menús muestra la Configuración de los Menús que se ve a continuación. Screenshot menu acl J3 tutorial-es.jpg

El acceso a las Opciones sólo está disponible para los miembros de los grupos que tienen permiso para Configurar una acción para cada componente. En el ejemplo anterior, el Administrador del grupo ha colocado como Permitido el permiso para la opción de Configuración, de forma tal que los miembros de este grupo pueden acceder a esta pantalla.

Categoría

Los permisos de Categorías tienen acceso en el Gestor de Categorías: A la pantalla Editar Categoría, se accede por un botón en la parte superior de la pantalla y luego en la pestaña Permisos. Esta pantalla tiene cinco permisos, como se muestra a continuación.

Screenshot category acl j3 tutorial-es.png

En estas pantallas, se trabaja en los permisos para un Grupo de usuarios por vez. En el ejemplo anterior, estamos editando los permisos para el grupo Administrador.

Ten en cuenta que Configurar y Acceso a las acciones de Componentes no se aplican a nivel de la categoría, por lo que esas acciones no están incluidas.

Ten en cuenta también que las Categorías pueden ser organizadas de forma jerárquica. Si es así, entonces los permisos a una acción en la categoría principal se heredan automáticamente por una categoría hija. Por ejemplo, si tenías unas categorías jerarquizadas Animales → Mascotas → Perros, entonces los niveles de permisos completos jerarquizados para un artículo en la categoría Perros sería como sigue:

  • Configuración Global
    • Gestor de Artículos → Opciones → Permiso
      • Categoría Animales
        • Categoría Mascotas
          • Categoría Perros
            • Artículo específico

Artículo

Los permisos para un solo artículo son accesibles desde el Gestor de artículos: A la pantalla Editar Artículo, se accede por un botón en la partes superior de la pantalla y luego en la pestaña Permisos. Esta pantalla tiene tres acciones, como se muestra a continuación.

J3x acl tutorial article manager article permissions-es.png

De nuevo, se edita cada grupo haciendo clic sobre él para abrir el control deslizante para ese grupo. A continuación, se puede cambiar los permisos en la columna Seleccionar la nueva configuración. Para ver el efecto de cualquier cambio, pulsa el botón Guardar para actualizar la columna Configuración Calculada.

Ten en cuenta que las acciones Configurar, Acceso al Componente y Crear no se aplican a nivel de artículo, por lo que estas acciones no están incluidas. El permiso para crear un artículo se establece en uno de los niveles más altos en la jerarquía.

Niveles de Acceso

Los Niveles de acceso en las series 3.x son simples y flexibles. La pantalla siguiente muestra el Nivel de Acceso Especial.

J3x acl tutorial viewing levels-es.png

Simplemente marca la casilla para cada grupo que se deseas incluir en ese nivel. El Nivel de Acceso Especial incluye a los grupos Gestor, Autor, y Super Usuarios. También incluye grupos hijos de esos grupos. Así, el grupo Administrador es incluido, ya que es hijo del grupo Gestores. Los grupos Editor, Supervisor(Publisher) y Proveedores son incluidos, ya que son hijos del grupo Autor. (Ten en cuenta que podríamos comprobar todos los grupos hijos si quisiéramos y cosa que no estaría de más).

Una vez que los Niveles de Acceso se crean, se utilizan de la misma manera como en la versión 1.5. A cada objeto del lado cliente se le asigna un Nivel de Acceso. Si el nivel es Público, cualquier persona puede tener acceso a ese objeto. De lo contrario, sólo los miembros de los grupos asignados a ese nivel de acceso puede tener acceso a ese objeto. Los niveles de acceso se asignan a los Ítems del Menú y a los Módulos. Cada uno sólo puede tener asignado un nivel de acceso.

Por ejemplo, la imagen de abajo muestra el la pantalla del Ítem de Menú Edición, con la lista de niveles de acceso disponibles.

J3x acl tutorial edit menu item level dropdown-es.png

Instalación predeterminada de ACL

Cuando Joomla! está instalado, esto se establece en sus ajustes predeterminados iniciales. Vamos a discutir estos valores iniciales, como una manera de entender cómo trabaja ACL.

Grupos Predeterminados

La versión 3.x te permite definir tus propios Grupos. Al instalar la versión 3.x, se incluyen un conjunto predeterminado de grupos, que se muestran a continuación y son la base de grupos de usuarios predeterminados. (Otros grupos de usuarios predeterminados se instalan con los datos de ejemplo)

Screenshot usergroupsl acl J3 tutorial-es.png

Las flechas indican las relaciones padre-hijo. Como se mencionó anteriormente, cuando se establece un permiso para que un grupo padre, este permiso se hereda automáticamente en todos los grupos hijos. Los permisos Heredado y Permitido pueden ser anulados para un grupo hijo. El permiso Denegado no puede ser reemplazado y siempre va a denegar una acción para todos los grupos hijos.

Configuración Global

La versión 2.5 de Joomla! se instala con los mismos permisos del lado servidor, ya conocidos, como en la versión 1.5. Sin embargo, en 2.5, puedes fácilmente cambiar estos permisos para satisfacer las necesidades de tu sitio.

Como se discutió anteriormente, los permisos para cada acción se heredan desde el nivel superior en la jerarquía de permisos y de un grupo de padre del grupo. Vamos a ver cómo funciona esto. El nivel superior de esto es para toda la web. Esto se configura en Sitio->Configuración Global->Permisos, como se muestra a continuación.

Screenshot global acl J3 tutorial-es.png

La primera cosa a tener en cuenta son las diez Acciones: Inicio de Sesión en el Sitio, inicio de Sesión en el Administrador, Acceso sin conexión, Súper Usuario, Acceso a la Interfaz de Administración, Crear, Borrar, Editar, Editar Estado y Edición Propia. Estas son las acciones que puede realizar un usuario en un objeto en Joomla!. El significado específico de cada acción depende del contexto. Para la pantalla de Configuración Global, se definen como sigue:

Inicio de Sesión en el sitio 
Inicio de Sesión en el lado cliente del sitio
Inicio de Sesión en el Administrador  
Inicio Sesión en el lado servidor del sitio
Acceso sin conexión
inicio de Sesión para el Lado Cliente del sitio cuando el sitio web está fuera de línea (cuando en la Configuración Global el valor de "Sitio fuera de línea" está ajustado a Sí)
Súper Usuario 
Otorga al usuario estado de "super usuario". Los usuarios con este permiso puede hacer cualquier cosa en el sitio. Sólo los usuarios con este permiso puede cambiar las opciones de Configuración Global (esta pantalla). Estos permisos no pueden ser restringidos. Es importante entender que, si un usuario es miembro del grupo Súper Administrador, cualquier otro permiso asignado a este usuario es irrelevante. El usuario puede realizar cualquier acción en el sitio. Sin embargo, los Niveles de Acceso todavía pueden ser asignado para controlar lo que este grupo puede ver en el sitio. (Obviamente, un usuario Súper Administrador puede cambiar los Niveles de Acceso si lo desea, por lo que los Niveles de Acceso no restringe totalmente lo que puede ver un usuario Súper Administrador).
Acceso a un Componente
Abrir la pantalla del gestor de componentes (Gestor de Usuarios, Gestor de Menús, Gestor de Artículos y así sucesivamente)
Crear 
Creación de nuevos objetos (por ejemplo, usuarios, ítems del menú, artículos, enlaces web, etc)
Eliminar 
Eliminación de los objetos existentes
Editar 
Edición de objetos existentes
Editar Estado 
Cambio del estado del objeto (Publicar, No Publicar, Archivo, y la Basura)
Edición Propia 
Edición de los objetos que ha creado.

Cada Grupo en el sitio tiene su propio control deslizante que se abre haciendo clic en el nombre del grupo. En este caso (con los datos de ejemplo instalados), tenemos el estándar de 7 grupos que teníamos en la versión 1.5, además de dos grupos adicionales llamado "Proveedores de la Tienda" y "Grupo Clientes". Nota que nuestros grupos tienen establecidos los mismos permisos que los que tenían en la versión 1.5. Ten en cuenta que podemos cambiar cualquiera de estos permisos para lograr que la seguridad trabaje de la manera que queremos. Vamos a ir a través de esto para ver cómo funciona.

  • Público tiene todo configurado como "No establecido", como se muestra a continuación.
    Screenshot global acl public J3 tutorial-es.png
    • Esto puede ser un poco confuso. Básicamente, "No Establecido" es lo mismo que "Heredado". Porque Público es nuestro grupo de nivel superior y debido a que en la Configuración Global es el nivel superior en la jerarquía de componentes, no hay nada que heredar. Por lo que "No Establecido" se utiliza en lugar de "Heredar".
    • El valor predeterminado en este caso es que no hay permisos. Así que, como era de esperar, el grupo Público no tiene permisos especiales. También, es importante destacar que, dado que nada esta Negado todos estos permisos se puede reemplazar por los de grupos hijos o de niveles inferiores en la jerarquía de permisos.


  • Invitado es un grupo 'hijo del grupo Público, tiene todo configurado como 'Heredado'
    Screenshot global acl guest J3 tutorial-es.png
    • Este el 'Grupo de Usuarios Invitados' predeterminado en las opciones del Gestor de Usuarios y el Grupo de los visitantes (no conectado) a tu sitio están colocados aquí.


  • Gestor es un grupo 'hijo' del grupo Público. Tiene permisos Permitido para todo, excepto el de Acceso a Componentes y de Súper Administrador. Por lo que un miembro de este grupo puede hacer todo en la parte cliente y en la parte servidor del sitio, excepto el cambiar los Permisos Globales y las Opciones del Componente.
    Screenshot global acl manager J3 tutorial-es.png


  • Administrador los miembros del grupo heredan todos los permisos del grupo Gestor y también tienen Permitido el Acceso a los Componentes. Así que los miembros de este grupo de forma predeterminada puede acceder a las pantallas de Opciones para cada componente.
    Screenshot global acl administrator J3 tutorial-es.png


  • Registrado es lo mismo que Público excepto por el permiso Permitido para la acción Inicio de Sesión en el Sitio. Esto significa que los miembros del grupo Registrado puede ingresar al sitio. De forma predeterminada los permisos se heredan, esto significa que, a menos que un grupo hijo anule estos permisos, todos los grupos hijo del grupo Registrado serán capaz de iniciar sesión.
    Screenshot global acl registered J3 tutorial-es.png


  • Autor es un grupo hijo del grupo Registrado y hereda sus permisos y se le suman también Crear y Editar Propios. Ya que Autor, Editor y Supervisor (Publisher) no tienen permisos para acceder al lado servidor, vamos a discutir más adelante sobre ellos, cuando hablemos de los permisos del lado cliente.
    Screenshot global acl author J3 tutorial-es.png


  • Editor es un grupo hijo del grupo Autores y se le agrega el permiso de Edición.
    Screenshot global acl editor J3 tutorial-es.png


  • Supervisor (Publisher) es un grupo hijo de Editor y se le agrega el permiso de Edición de Estado.
    Screenshot global acl publisher J3 tutorial-es.png


  • Proveedores de la Tienda es un grupo de ejemplo que se instala al instalar los datos de ejemplo. Es un grupo hijo de Autor.
  • Grupo clientes es un ejemplo de grupo que se instala al instalar los datos de ejemplo. Es un niño del grupo de Registrados.
  • Súper Usuarios es un grupo que tiene los permisos Permitido para las acciones del Súper Administrador. Debido a esto, los miembros de este grupo tienen permisos de súper usuario en todo el sitio. Ellos son los únicos usuarios que pueden acceder y editar los valores de la pantalla Configuración Global. Los usuarios con permisos de acción de Súper Administrador tienen algunas características especiales:
  • Si un usuario tiene permisos de Súper Administrador, no hay otros permisos para el usuario en cuestión. El usuario puede realizar cualquier acción en el sitio.
  • Sólo los usuarios Súper Administrador pueden crear, editar, o eliminar otros usuarios o grupos Súper Administrador.

Hay dos puntos muy importantes a entender para esta pantalla. La primera es ver cómo los permisos pueden ser heredados de los padres del Grupo. El segundo es ver cómo puedes controlar los permisos predeterminados por Grupo y por Acción.

Esto proporciona una gran flexibilidad. Por ejemplo, si quieres que Proveedores de al Tienda sea capaz de tener la posibilidad de iniciar sesión en el lado servidor, sólo debes cambiar el valor de inicio de Sesión de Administración a "Permitido". Si lo que quieres es no permitir que los miembros del grupo Administrador pueda eliminar objetos o cambiar su estado, puedes cambiar sus permisos en estas columnas a Heredado (o Denegado).

También es importante entender que la posibilidad de tener grupos hijos es completamente opcional. Esto te permite ahorrar algo de tiempo en la creación de nuevos grupos. Sin embargo, si lo deseas, puedes configurar todos los grupos con Público como padres y que no hereden los permisos de un grupo padres.

Componente: Opciones y Permisos

Ahora, vamos a seguir para ver cómo son los valores predeterminados de los permisos para el lado servidor de la versión 2.5 para imitar los permisos de la versión 1.5. El grupo Súper Usuarios en 2.5 es equivalente al grupo Súper Administrador en 1.5.

Con sólo mirar a la panatalla Configuración Global de arriba, parecería que el grupo Administrador y el grupo Gestor tienen los mismos permisos. Sin embargo, en la versión 1.5 los Administradores pueden hacer de todo, excepto la Configuración Global, mientras que los Gestores no están autorizados a añadir usuarios o trabajar con los elementos de menú. Esto también es igual en el valor predeterminado de configuración de la versión 2.5. Vamos a ver cómo se logra esto.

Si navegamos a Usuarios->Gestor de usuarios y hacemos clic en el botón Opciones en la barra de herramientas, podemos ver la siguiente pantalla:

Screenshot acl tutorial 20110111-09-es.png
Screenshot acl tutorial 20110111-10-es.png

Esta imagen es la misma que la de la pantalla de Permisos de Configuración Global, excepto que estos valores sólo afectan como trabajan los Usuarios. Veamos cómo funciona esto.

Primero, observa que el grupo Administrador tiene el permiso Permitido para la acción Administrador y el grupo Gestor tiene el permiso Denegado para esta acción. Recuerde que la acción Administrador en la pantalla de Configuración Global proporciona los permisos al grupo de "súper usuario". En esta pantalla, la acción del Administrador le permite editar los valores de las Opciones. Así, el grupo Administrador puede hacer esto, pero el grupo Gestor no puede.

Siguiente, observa que el Administrador hereda la acción Gestionar y el grupo Gestor tiene el permiso Denegado. En esta pantalla, la acción Gestionar le da a grupo de acceso de Usuario Gestor. Ya que el Administrador Permite la acción Gestionar de forma predeterminada, entonces heredar permisos aquí significa que heredan el permiso Permitido para la acción Gestionar. Desde el grupo Administrador hay que Denegar el permiso para la acción gestionar, los miembros del grupo Gestor no pueden tener acceso al Usuario Administrador y por lo tanto no puede hacer cualquiera de las otras acciones.

Si miras en las Opciones de los Menús->Gestor de Menús, verás la misma configuración predeterminada para el Usuario gestor. De nuevo, el grupo Administrador puede administrar y configurar los permisos predeterminados para los objetos del Gestor de Menús, mientras que el grupo Gestor no puede.

En resumen, podemos ver que los diferentes permisos para los grupos Administrador y Gestor se establecen mediante el formulario Opciones->Permisos en las pantallas del Gestor de Usuarios y Gestor del Menús.

También es importante entender que este mismo formulario de Opciones->Permisos para la configuración de permisos predeterminados está disponible para todos los objetos Joomla!, incluyendo el Gestor de Medios, Anuncios, Contactos, Fuentes de Noticias, Redirigir, Estadísticas de Búsqueda, Enlaces Web, Extensiones, Módulos, Plugins, Plantillas, e Idioma. Así que ahora tienes la opción de crear grupos de usuarios con conjuntos de permisos afinados para el lado servidor.

Permisos Lado Cliente

Los permisos predeterminados para el lado cliente también se establecen utilizando el formulario de Opciones. Veamos en Contenido->Gestor de artículos->Opciones->Permisos. En primer lugar, echemos un vistazo a los permisos del Gestor, como se muestra a continuación.

Screenshot acl tutorial 20110111-11a-es.png

El Gestor tiene el permiso permitido todas las acciones excepto Configurar. Así que los miembros del grupo Gestor pueden hacer de todo con los Artículos excepto abrir la pantalla de Opciones.

Ahora veamos al Administrador, como se muestra a continuación.

Screenshot acl tutorial 20110111-12a-es.png

El administrador tiene Permitido Configurar, de manera que los Administradores pueden editar la pantalla de Opciones.

Ambos grupos pueden crear, borrar, editar y cambiar el estado de los artículos.

Ahora, echemos un vistazo a los grupos Supervisor(Publisher), Editor, Autor y veamos cómo están configurados sus permisos.

Los autores sólo tienen permiso para Crear y Editar Propios, como se muestra a continuación.

Screenshot acl tutorial 20110112-07-es.png

Esto significa que los Autores pueden crear artículos y pueden editar los artículos que han creado. No puede eliminar artículos, cambiar el estado de publicación de los artículos o editar los artículos creados por otros.

Los editores tienen los mismos permisos que los Autores con la adición de permiso para la acción Editar, como se muestra a continuación.

Screenshot acl tutorial 20110112-08-es.png

Así que los Editores pueden editar los artículos escritos por cualquiera.

Los Supervisores(Publishers) pueden hacer todo lo que los Editores pueden hacer, además que tienen el permiso para la acción Editar el Estado, como se muestra a continuación.

Screenshot acl tutorial 20110112-09-es.png

Entonces los Supervisores(Publishers) pueden cambiar el estado de publicación de un artículo. Los posibles estados son Publicado, No Publicado, Archivado y movido a la papelera.

Todos estos grupos tienen los permisos heredado para Configurar y Acceder a Componentes. Recuerde que Autor es un hijo del grupo Registrado y Registrado no tiene ningún permiso excepto para el inicio de Sesión. O sea que Registrado no tiene permiso para Configurar y Acceder a Componente y ya que el permiso del Autor para estas acciones es "Heredado", entonces el Autor no tiene estos permisos. Este mismo permiso se pasa de Autor a Editor y de Editor a Supervisor(Publisher). Así que, de forma predeterminada, a ninguno de estos grupos se les permite trabajar con los artículos en el lado servidor.

Es importante recordar que estos permisos son sólo la configuración predeterminada para las categorías y los artículos y para los grupos hijos que se crean. Así que puede ser anulados por grupos hijo, para categorías y para determinados artículos.

También, ten en cuenta que no hay permiso Denegado para alguna acción en la configuración predeterminada. Esto permite que agregues los permisos otorgados en cualquier nivel. Recuerda, una vez que tienes un conjunto de acciones en Denegado, esta acción se niega en todos los niveles inferiores en la jerarquía. Por ejemplo, si se establece el inicio de Sesión como Administrador para Registrado en Denegado (en lugar de heredado), no se podría conceder a los Editores permisos para esta acción.

Gestor de Artículos y Diagrama de Acciones

El siguiente diagrama muestra cómo cada acción en el formulario de permisos se relaciona a las distintas opciones en la pantalla del Gestor de Artículos.

Screenshot acl tutorial 20110111-16-es.png
  • Configurar permite ver y cambiar las Opciones del componente.
  • Acceso al Componente permite navegar a través del Gestor de Artículos. Sin este permiso, no son posibles otras acciones.
  • Crear permite agregar nuevos artículos.
  • Borrar permite eliminar artículos de la papelera. Ten en cuenta que el icono Eliminar se muestra en la barra de herramientas cuando el filtro "Seleccionar Estado" esta en "Movido a la papelera".
  • Editar permite editar los artículos existentes.
  • Editar Estado permite Publicar, No Publicar, Archivar o mover a la Papelera los artículos.
  • Editar Propio es lo mismo que Editar, excepto que sólo se aplica a los artículos escritos por uno mismo.

Permitir a los Invitados Sólo el Acceso a Ítems del Menú y Módulos

La versión 1.6 introdujo la capacidad de crear un Nivel de Acceso a Visualizaciones que es sólo para los invitados al sitio (es decir, un usuario que no ha iniciado sesión). El siguiente ejemplo muestra cómo se puede configurar esta nueva característica. (Nota: los pasos 1 a 3 no son necesarios en Joomla! 3.x ya que existen de forma predeterminada en la instalación)

  1. Crea un nuevo grupo de usuarios llamado Invitado. Haz que sea hijo del grupo Público como se muestra a continuación.
    Screenshot acl tutorial 20110112-01-es.png
  2. Crea un nuevo nivel de acceso llamado Invitado y sólo garantiza al grupo Invitado el acceso a este nivel, como se muestra a continuación.
    Screenshot acl tutorial 20110112-02-es.png
  3. Ve a Gestión de usuarios→Opciones→Componente y cambia en el Grupo Usuario Invitado el valor predeterminado de "Público" a "Invitado", como se muestra a continuación.
Screenshot acl tutorial 20110112-04-es.png

Ahora, si se asigna un ítem del menú, módulo u otro objeto al nivel de acceso Invitado, tendrán acceso sólo los usuarios no registrados. Por ejemplo, si queremos crear un nuevo ítem del menú con nivel de acceso Invitado, como se muestra a continuación,

Screenshot acl tutorial 20110112-05-es.png

este ítem del menú sólo será visible para los visitantes del sitio no conectados.

Si se requiere de otros grupos de usuarios como Autor, pueda acceder al nivel de acceso invitado, permitiría a los Autores ver los artículos en el lado cliente para su edición.

N. B. Inicio/Cierre de Sesión en el lado cliente (por cambios de datos en la sesión) para ver el cambio.

Usar juntos Niveles de Permisos y Grupos

Como se mencionó anteriormente, es posible definir grupos de forma jerárquica, donde cada grupo secundario hereda los permisos de acción (por ejemplo, el permiso crear) de su grupo primario. Los permisos de acción también se heredan desde el nivel de permisos anterior. Por ejemplo, un permiso en el Gestor de artículos hereda el mismo permiso de la Configuración Global, y un permiso en una Categoría hija hereda de los padres el permiso de la Categoría.

Esta doble herencia puede ser confusa, pero también puede ser útil. Vamos a considerar un ejemplo de la siguiente manera. Tenemos una escuela con una jerarquía de gruposː Maestros → Profesores de Historia → Asistente de los Profesores de Historia. También tenemos una jerarquía de categoríasː Tareas → Historial de Tareas. Queremos que los Profesores de Historia y Ayudantes de los Profesores de Historia tengan los siguientes permisos:

  • ambos grupos pueden crear nuevos artículos sólo en la categoría Historial de Tareas.
  • sólo los Profesores de Historia (no los Ayudantes de los Profesores de Historia) pueden Supervisar(Publish) o de otra manera disponer del permiso Editar Estado.

Este esquema ACL es muy fácil de implementar. El siguiente diagrama muestra cómo podrían ser establecidos para la Acción Crear.

Acl example diagram1 20091018-es.png

En el diagrama, la Jerarquía de Permisos muestran en el lado izquierdo y la jerarquía del Grupo se muestra en la parte superior. Los permisos se heredan abajo y a la derecha, como se muestra por las flechas. Para aplicar los permisos que desee, salimos de la Configuración Global en blanco (No Establecido) para los tres grupos. Del mismo modo, en Gestor de artículos y la Categoría Asignaciones, dejamos el permiso Crear como Heredado para todos los grupos. Como se muestra en el diagrama, esto significa que estos grupos no tienen permiso para Crear artículos en general o para los artículos en el grupo Tareas.

Para resumir hasta ahora, no hemos establecido los permisos especiales para llegar a este punto. Ahora, en la pantalla de los permisos de la categoría Historial de Tareas, podemos configurar el permiso Permitir Crear para el grupo Profesores de Historia. Este ajuste anula el Suave (Implícito) Denegar que hemos tenido de forma predeterminada y proporciona a los miembros de este grupo permiso para crear contenido (artículos y las categorías hijas) para esta categoría. Esto permite establecer también lo heredado por el grupo Ayudantes de los Profesores de Historia.

A continuación, tenemos que conceder a los Profesores de Historia el permiso para la Edición de Estado, mientras que le denegamos ese permiso a Ayudantes de los Profesores de Historia. Esto se hace como se muestra en el diagrama de abajo.

Acl example diagram2 20091018-es.png

Esta configuración es la misma que la anterior, excepto que esta vez hemos puesto el permiso Edición de Estado en la categoría Historial de Tareas como Denegado para el grupo Ayudantes de los Profesores de Historia. Esto significa que Ayudantes de los Profesores de Historia no será capaz de Publicar o No Publicar artículos en esta categoría.

Ten en cuenta que esto se logró mediante la configuración de sólo dos permisos en la categoría Historial de Tareas: Permitir al grupo Profesores de Historia y Denegar al grupo Ayudantes de los Profesores de Historia.

Ejemplos de Permisos en Acciones ACL

Aquí hay algunos ejemplos de cómo puedes configurar las ACL para algunas situaciones específicas.

Lado Servidor, Administrador de Artículos

Problema:

Queremos crear un grupo llamado "Administrador de Artículos" con permisos del lado servidor sólo para los artículos y no para cualquier otra opción del menú del lado servidor. Los miembros de este grupo debe ser capaz de utilizar todas las características del gestor de artículos, incluyendo la configuración de permisos del artículo.

Solución:

  1. Crear un nuevo grupo llamado Administrador de Artículos y que su grupo de padre sea el grupo Público, como se muestra a continuación.
    Screenshot acl tutorial 20110112-10-es.png
    Debido a que su grupo padre es el Público, no va a tener permisos predetermiandos.
  2. En Usuarios → Niveles de Acceso, editar el nivel Acceso Especial para agregar el nuevo grupo. De esta forma se puede obtener acceso a los ítems del menú y módulos del lado servidor (Esto presupone que los módulos del menú de administración y los iconos tienen asignado el nivel Acceso Especial, que es el valor predeterminado.)
    Screenshot acl tutorial 20110112-11-es.png
    De forma predeterminada, a los ítems del menú y los módulos del lado servidor se le establecen el acceso Especial, así que si usted se olvida de agregar un nuevo grupo al nivel de acceso Especial, no verán todos los módulos o ítems de menú al iniciar la sesión como un usuario del nuevo grupo.
  3. En Sitio(Administrador) → Configuración Global → Permisos, haz clic en el grupo Administrador de Artículos y cambiar los permisos a Permitido para las siguientes acciones: inicio de Sesión de Administrador, Crear, Borrar, Editar, Editar Estado, y Edición Propia. La pantalla de abajo muestra lo que se mostrará antes de pulsar Guardar.
    Screenshot acl tutorial 20110112-12-es.png
    Después de guardar, el valor Calculado de Permisos se debe mostrar como se ve a continuación.
    Screenshot acl tutorial 20110112-13-es.png
    Ten en cuenta que el permiso para el Acceso al Componente es Heredado, lo que se traduce en No Permitido. Esto es importante. Esto significa que este grupo sólo será capaz de acceder a los componentes si le damos el permiso "Permitido" al grupo para el Acceso al Componente. Tan sólo tenemos que cambiar el componente al que queremos darles acceso y no tenemos que cambiar la configuración de los componentes donde no queremos que tengan acceso. Si hemos tenido un caso en el que hemos querido dar a un grupo acceso a todo, excepto para uno de los componentes, se puede establecer el valor predeterminado a Permitido y, a continuación, establecemos como Denegar para el componente. También ten en cuenta que nosotros no damos permiso al grupo para Inicio de Sesión en el Sitio, por lo que los usuarios de este grupo no será capaz de iniciar sesión en el lado cliente. (Si queremos permitirlo, se debe cambiar el permiso a Permitido para el Inicio de Sesión en el Sitio.)
  4. En Gestor de Artículos → Opciones → Permisos, cambiar los permisos a Permitido para este grupo, para la acción de Acceso al Componente, como se muestra a continuación.
    Screenshot acl tutorial 20110112-14-es.png
    Todos los permisos son heredados.

Eso es todo lo que necesitas hacer. Los miembros de este grupo pueden acceder al lado servidor y hacer todo en el Gestor de artículos, pero no puede hacer nada más en el lado servidor. Por ejemplo, la pantalla de abajo muestra lo que un usuario en el Gestor de artículos verá al inicio de sesión del lado servidor.

Screenshot acl tutorial 20110112-15-es.png

Ejemplos de Niveles de Acceso ACL a las Vistas

Un concepto básico del uso de Niveles de Acceso es que todos los ítems con el mismo Acceso será visible para el mismo grupo de usuarios. En otras palabras, si dos ítems tienen el mismo Acceso, no se puede tener uno visible para un usuario y que no se pueda ver por otro usuario del mismo grupo. Por otro lado, es fácil tener un Grupo de vistas con cualquier número de ems con diferentes niveles de Acceso.

Del mismo modo, cada Grupo tiene exactamente la misma combinación de niveles de Acceso, pero un Usuario puede ser miembro de más de un grupo. Dependiendo de la situación, puede que desees tener sólo usuarios en un Grupo o puedes necesitar tener un Usuario en más de un Grupo.

Esto significa que podemos necesitar grupos de nuestros ítems, para que de esta manera todos los ítems de un grupo tengan el mismo nivel de sensibilidad. Aquí están algunos ejemplos.

Ejemplo de Jerarquía

En este ejemplo, los niveles de Acceso son jerárquicos, por ejemplo, al igual que los códigos de autorización de seguridad de un gobierno. Digamos, por ejemplo, tenemos los siguientes conjuntos de documentos clasificados: Clasificado, Secreto, y Muy Secreto. Los usuarios tienen sus códigos correspondiente a cada espacio. Los usuarios código Clasificado sólo puede ver los documentos Clasificados y no pueden ver Secreto o Muy Secreto. Los usuarios con código Secreto puede ver los documentos Clasificado y Secreto, pero no los Muy Secreto. Los usuarios con código Muy Secreto puede ver todos los documentos.

En este caso, deberás crear tres niveles de Acceso: Clasificado, Secreto, y Muy Secreto y los mismos tres Grupos. Los usuarios sólo pueden ser miembros de un grupo, de la siguiente manera:

Usuario Grupo Niveles De Acceso
C1, C2, C3 Clasificado Clasificado
S1, S2, S3 Secreto Clasificado, Secreto
TS1, TS2, TS3 Muy Secreto Clasificados, Secreto, Muy Secreto

En este caso, todos los usuarios son exactamente de un grupo, pero algunos grupos tienen acceso a los ítems de más de un Nivel de Acceso. En otras palabras, tenemos una relación uno-a-uno entre los usuarios y los grupos, pero una relación uno-a-muchos entre los Grupos y Niveles de Acceso.

Ejemplo de Equipo de Seguridad

Otro posible caso de uso es un conjunto de equipos no jerárquicos. Supongamos que tenemos tres equipos, T1, T2 y T3. Algunos usuarios están en un sólo equipo, pero otros pueden estar en dos o más equipos. En este caso, podemos configurar nuestros Niveles de Acceso y Grupos por equipo. Los documentos para cada equipo tiene el nivel de acceso para ese equipo y el Grupo del equipo sólo tiene ese nivel de acceso. Cuando un Usuario se encuentra en más de un equipo, se agregan al grupo para cada equipo, de la siguiente manera:

Usuario Descripción Grupo Niveles de Acceso
U1 Miembro del Equipo 1 T1 T1
U2 Miembro del Equipo 2 T2 T2
U3 Miembro del Equipo 3 T3 T3
U1-2 Miembro de los equipos 1 y 2 T1, T2 T1, T2
U1-3 Miembro de los equipos 1 y 3 T1, T3 T1, T3
U1-2-3 Miembro de los equipos 1, 2 y 3 T1,T2, T3 T1, T2, T3


Ejemplo Híbrido

En una situación real, podrías tener una combinación de estos dos modelos. Digamos, por ejemplo, tenemos los Gerentes y el Personal. El Personal sólo puede ver los documentos del Personal y los Gerentes pueden ver los documentos de los Gerentes y el Personal. Ambos tipos de usuarios pueden ser asignados a los equipos y en cuyo caso se puede ver todos los documentos de ese equipo. Además, decir que los Gerentes pueden acceder a algunos, pero no todos, los documentos del equipo. El Personal sólo puede tener acceso a documentos del equipo, si son miembros de ese equipo.

En este ejemplo, podríamos establecer los siguientes Niveles de Acceso:

Nivel de Acceso Descripción Grupos
Gerente Documentos que no son del equipo gerente Gerente
Personal Documentos que no son del equipo personal Gerente, Personal
Equipo1 Documentos sensibles del Equipo1(sin acceso por fuera del equipo) Equipo1
Team1-Gerente Documentos del Equipo1 que pueden ser accedido por todos los gerentes Equipo1, Gerente
Equipo2 Documentos sensibles del Equipo2(sin acceso por fuera del equipo) Equipo2
Team2-Gerente Documentos del Equipo1 que pueden ser accedidos por todos los gerentes Equipo2, Gerente

A continuación, los usuarios pueden ser asignados a los grupos de la siguiente manera:

Tipo de usuario Grupo
Gerente en ningún equipo Gerente
Staff on no teams Staff
Gerente en el equipo 1 Gerente, Equipo1
Personal en el equipo 1 Personal, Equipo1
Gerentes en los equipos 1 y 2 Gerente, Equipo1, Equipo2
Personal en equipos 1 y 2 Personal, Equipo1, Equipo2