Está en la página 1de 5

Gestin de usuarios y permisos

http://www.mediaglobe.es/es/blog/drupal-7-gestion-de-usuarios-y-permisos

La gestin que hace Drupal de usuarios y permisos es bastante completa y es uno de los
puntos que le hace destacar por encima de otros gestores de contenidos populares que
parece que siempre van a remolque en este aspecto.

El sistema de permisos utilizado por Drupal se basa en el concepto de 'rol' trmino


conocido por todos aquellos que hayan trabajado con los sistemas de permisos de las
bases de datos y cuyo funcionamiento es muy parecido. Drupal permite crear tantos
roles como sean necesarios para la aplicacin que estemos desarrollando. Por defecto
existen tres roles que son el usuario annimo, el de usuario autenticado y el de
administrador (este ltimo es una novedad).

La forma de trabajar es otorgar los permisos a los roles y asignar stos ltimos a los
usuarios del sistema. Por lo que los permisos son compartidos por todos aquellos
usuarios que ostentan el mismo rol en el sistema. El listado de permisos que ofrece el
core es bastante extenso e ir en aumento a medida que vayamos instalando nuevos
mdulos que aporten sus propios permisos.

En lo que se refiere a la visibilidad de los contenidos del sistema el core permite entre
otros:

Ver el contenido publicado.


Crear contenido de cada uno de los tipos de datos del sistema.
Editar el contenido de estos tipos de datos. Slo el propio o tambin el creado
por otros usuarios.
Borrar el contenido. Propio o tambin el creado por otros usuarios.
Para ciertas aplicaciones esta gestin de permisos sobre el contenido es suficiente, pero
para otras se queda corta, en este caso habr que recurrir a mdulos contribuidos que
aumenten la granularidad de este sistema. Hay muchos mdulos que realizan esta
funcin y no podemos explicarlos todos. En este artculo, vamos a presentar tres de
ellos que cubren casi todo el espectro de configuraciones y combinaciones de permisos
que podramos encontrarnos.

Field Permissions
En Drupal 7 gran parte de los mdulos CCK se ha incluido en el core, pero no se
incluy el mdulo Content Permission. Field Permissions viene a sustituir a este mdulo
aunque con ciertas mejoras que comentaremos. A grandes rasgos lo que te permite es
gestionar los permisos (visibilidad, edicin...) a nivel de campos de cada uno de los
tipos de datos del sistema.

Hay que destacar la mejora de la usabilidad que tiene este mdulo con respecto a la de
su predecesor. Para ver su funcionamiento basta con instalarlo, irnos a cualquier tipo de
datos del sistema y editar uno sus campos. Como vemos en la siguiente imagen han
aparecido las siguientes opciones:
Pblico: campo visible para todo el mundo y editable por cualquier rol que tenga
permisos de edicin sobre ese tipo de datos.
Privado: visible slo por su creador y el administrador.
Personalizado: Donde podemos configurar su comportamiento para cada una de
las acciones y roles del sistema.

Como podemos observar es un sistema bastante completo con el que podemos llegar a
alcanzar un grado de granularidad bastante alto.

Adems, gracias a que Drupal 7 dej de ser "Nodocentrista" para pasar a ser
"Entidadcentrista" y con ello todas las entidades pueden tener campos este sistema de
permisos no se reduce a los nodos como era el caso de drupal 6 y cck sino que es
aplicable a cualquier campo que tengamos en el sistema, ya pertenezcan a tipos de
datos, como a perfiles de usuario...

Content Access
Vale el mdulo anterior esta muy bonito, pero lo que realmente quiero es poder decidir
que tipo de datos puedo ver, editar ... y no dar slo permiso a todos en general. Pues
bien, justamente content access permite hacer eso y algunas cosas ms.

Una vez instalado el mdulo, si editamos cualquier tipo de datos del sistema veremos
que ha aparecido una pestaa llamada Access Control desde la que podremos configurar
los permisos especficamente para ese tipo de datos.

Como podemos observar en la imagen podemos definir permisos de visibilidad, edicin


y borrado de contenido para este tipo de datos.

Si observamos en la parte inferior de la imagen existe un checkbox (per content node


access...) que podemos tambin habilitar. Si lo hacemos lo que conseguimos es que los
permisos anteriormente definidos puedan ser sobreescritos para un contenido en
concreto. Por ejemplo, permitira que un rol que no tuviese permiso de edicin de el tipo
de datos pgina pudiera editar una pgina en concreto.

Al haber habilitado este checkbox ha aparecido una pestaa nueva en cada contenido
que nos permite realizar dicha sobreescritura de permisos.

Taxonomy Access Control


Este mdulo basa su funcionamiento en la gestin de permisos a traves de taxonomas.
Podemos definir reglas de visibilidad, edicin y borrado segn la presencia o no de uno
o varios trminos de una taxonoma. De esta forma podramos restringir el acceso a
contenido etiquetado como "premium" a todos aquellos roles que poseyern dicha regla.

Para ello, una vez habilitado el mdulo nos vamos a su panel de configuracin desde
donde podemos crear las reglas de acceso para cada uno de los roles del sistema.
El panel de creacin de reglas es un poco confuso, pero suficiente. Basicamente lo que
hay que hacer es ir seleccionando los trminos con los que queramos gestionar las reglas
y gestionar que permisos vamos a otorgar. Lo podemos ver en la siguiente imagen.

Una vez creadas las reglas la visibilidad del contenido del sitio pasar a estar gestionada
por taxonomas.

Como hemos podido comprobar con estos tres mdulos la flexibilidad alcanzada por el
sistema de permisos de Drupal 7 es bastante grande. Cabe decir que existen otros
mdulos que si bien no estn directamente enfocados a la gestin de permisos tambin
tienen su propio control de los mismos como pueden ser Views, Panels.

En este sentido, cabe destacar tambin el mdulo Organic Groups, pero ste merece un
prximo artculo.

También podría gustarte