Skip to content

Permisos y control de acceso

Los permisos (y el concepto relacionado de listas de control de acceso o ACL) son conjuntos de reglas que definen el acceso a varias áreas del sistema. En esencia, usted crea roles para su sitio, les otorga permisos para hacer ciertas cosas y asigna los roles a ciertas personas.

Los permisos y las ACL le permiten otorgar acceso a:

  • Diferentes áreas de CiviCRM (por ejemplo, CiviContribute, CiviCase y CiviMail) para reflejar las tareas de las que es responsable el usuario
  • Entidades dentro del sistema (como contactos, contribuciones, etc.) y cómo el usuario puede interactuar u operar con ellas (por ejemplo, ver, editar, eliminar)

Dado que los permisos definen quién puede ver y quién puede realizar diferentes acciones en su sitio, es importante, desde una perspectiva de seguridad, que los comprenda bien. Es muy fácil marcar una casilla de permisos sin comprender completamente lo que hace. Un sitio con permisos mal configurados puede exponer inadvertidamente los datos de sus contactos.

La diferencia entre los permisos de CMS y las ACL de CiviCRM

Los permisos y las ACL se encuentran definidas en dos lugares separados: en el sistema de administración de contenido (CMS) y en el propio CiviCRM. Muchas organizaciones pueden hacer lo que necesitan con solo configurar los permisos de CMS adecuadamente. Otros necesitarán configurar las ACL de CiviCRM para proporcionar un control de acceso más detallado.

Los permisos de CMS le permiten otorgar (o quitar) acceso a secciones enteras de CiviCRM dependiendo de los distintos roles del usuario, como CiviMail, CiviEvent, etc. También le permiten restringir la capacidad del usuario para ver, editar, añadir y eliminar registros como contactos , eventos y contribuciones. Sin embargo, este es un enfoque de "todo o nada", es decir que, por ejemplo, no es posible diferenciar entre contactos que pertenecen a diferentes grupos.

Las ACL nativas de CiviCRM brindan un control más detallado, por lo que, por ejemplo, puede limitar el acceso para ver, editar, crear, eliminar y buscar a:

  • grupos de contactos
  • un perfil (esta es una colección de campos existentes y / o personalizados, ver "Perfiles")
  • un conjunto de campos personalizados
  • eventos (por ejemplo, un usuario puede acceder a un evento, pero no a otros)

Como regla general, probablemente debería comenzar con los permisos de CMS y, si no puede hacer lo que necesita con ellos, considere usar CiviCRM para hacer cumplir los derechos de acceso más específicos.

Para aclarar, aquí hay dos ejemplos de ocasiones en las que las ACL de CiviCRM deben usarse en lugar de las de Drupal, Joomla! o WordPress:

  1. Una organización tiene una oficina central y tres oficinas regionales repartidas por todo el país. El director de eventos que trabaja desde la oficina central debe poder ver todos los eventos en todas las oficinas, pero los coordinadores de eventos que reportan al director y local a cada oficina regional solo deben tener acceso para ver y editar sus propios eventos. Dado que una lista de control de acceso de CMS solo podría restringir el acceso para ver, editar, añadir, eliminar todos los eventos o ninguno, se debe configurar desde las ACL de CiviCRM.
  2. Se han creado dos conjuntos de campos personalizados, uno para un equipo de empleados que trabaja en París gestionando un grupo de voluntarios y el otro que recopila información de donantes en Londres. Cada equipo solo debería poder acceder a los datos almacenados en su propio conjunto de campos personalizados, sin embargo, una lista de control de acceso de CMS solo podría darles acceso a toda la información personalizada, o a ninguna de ellas. En este caso, cualquier regla de CMS que controle el acceso a los campos personalizados debe deshabilitarse y, en su lugar, se debe configurar desde las ACL de CiviCRM.

Permisos de CMS

Todos los CMS tienen el mismo conjunto de permisos CiviCRM, pero cada uno se encuentra en diferentes lugares y difiere ligeramente en apariencia.

Permisos en Drupal

Para acceder a los permisos de Drupal, vaya al menú de Drupal, elija la opción Usuarios y seleccione la pestaña Permisos en la esquina superior derecha de la ventana emergente. Aquí encontrará una extensa lista con todas las operaciones o acciones posibles que un usuario podría realizar en CiviCRM y Drupal, con columnas para cada tipo de rol existente. Marcar una opción en una de las columnas otorgará a ese rol la capacidad de realizar la acción.

Puede crear nuevos roles y editar todos los existentes. Para editar roles, en la pestaña Permisos, seleccione el botón Roles en la parte superior derecha de la página.

image

Los roles se pueden asignar a los usuarios de las siguientes formas:

  • Abra el registro de contacto de un usuario (un contacto en CiviCRM con una cuenta de usuario), seleccione el botón Acciones en la parte superior y seleccione Registro de Usuario en el menú. Cuando aparezca la siguiente pantalla, seleccione la pestaña Editar (arriba a la derecha) y luego desplácese hacia abajo hasta la sección titulada Roles; aquí puede cambiar el nivel de acceso.
  • Como administrador, acceda al menú de Drupal y seleccione la opción Personas. Cuando aparezca la lista de usuarios activos, seleccione el nombre deseado para abrir su perfil de usuario de Drupal, vaya a la pestaña Editar en la parte superior derecha de la página y luego desplácese hacia abajo hasta la sección Roles.

Permisos en Joomla!

Los permisos en Joomla! se puede encontrar de la siguiente manera:

  1. Inicie sesión en el panel administrativo de Joomla!
  2. Vaya al menú Componentes y seleccione CiviCRM de la lista
  3. En el menú de CiviCRM, vaya a Administrar > Usuario y Permisos > Permisos (Control de Acceso)
  4. Seleccione la opción Control de Acceso de Joomla! en la parte superior de la lista

Joomla! tiene un método diferente de asignación de permisos, ya que cada grupo de usuarios (Rol) es padre o hijo de otro grupo de usuarios, donde los grupos de usuarios secundarios (los que están en la parte inferior de la tabla) heredan los permisos establecidos para los que están por encima de ellos. Por lo tanto, al editar los permisos asignados a un grupo de usuarios en la tabla, puede elegir entre:

  • Heredado: si el grupo de usuarios anterior recibió este permiso, también podrá realizar la acción dada
  • Permitido: los usuarios de este grupo de usuarios pueden realizar la operación
  • Denegado: los usuarios de este grupo de usuarios no pueden realizar la acción

Tenga en cuenta que Joomla! tiene dos permisos adicionales no utilizados por Drupal o Wordpress: Configurar Joomla! ACL (el usuario puede configurar las ACL de Joomla! y se le asignan todos los permisos de CiviCRM) y Mostrar Componente CiviCRM (el usuario puede ver CiviCRM en la lista de Componentes).

image

Finalmente, para asignar uno de estos grupos de usuarios a un usuario en particular, o cambiar su grupo de usuarios existente, asegúrese de haber iniciado sesión como administrador y luego realice una de las siguientes acciones:

  • Vaya al registro de contacto del usuario en CiviCRM, seleccione el botón Acción y seleccione la opción Registro de Usuario. Una sección llamada Grupos de Usuarios Asignados estará disponible para cambiar roles.
  • Dentro del panel administrativo de Joomla!, en el menú Usuario, selección Administrador de Usuarios. Se enumerarán todos los usuarios disponibles y, al seleccionar un nombre, se abrirá una pantalla con la opción de cambiar la configuración de su cuenta, incluido el grupo de usuarios.

Control de Acceso (Permisos) en Wordpress

En CiviCRM, vaya a Administrar > Usuario y Permisos > Permisos (Control de Acceso). Seleccione el enlace Control de Acceso de Wordpress. Aquí puede ajustar la configuración de CiviCRM para cada uno de los roles de usuario predefinidos de Wordpress.

image

image

Los roles se pueden asignar a los usuarios de las siguientes formas:

  • Abra el registro de contacto de un usuario (un contacto en CiviCRM con una cuenta de usuario), presione el botón Acciones en la parte superior y seleccione Registro de Usuario en el menú. Esto abrirá la pantalla Editar Usuario donde puede cambiar su Rol para cambiar su nivel de acceso.
  • Dentro del panel de administración del sitio de WordPress, seleccione Usuarios en el menú, para ver una lista de todos los usuarios. Al seleccionar un nombre, se abrirá la pantalla Editar Usuario, donde puede cambiar su rol para cambiar su nivel de acceso.

Roles y Autenticaciones anónimas

Encontrará ambos tipos de roles mientras trabaja con los controles de acceso. Aunque pueden tener un nombre diferente en diferentes CMS, el principio básico es el mismo.

El rol anónimopúblico en Joomla!) se aplica a todos los visitantes del sitio web que no hayan iniciado sesión. Este rol tendrá el nivel más bajo de permisos. Los permisos CiviCRM predeterminados para este rol son:

  • hacer contribuciones o donaciones en línea
  • ver información del evento
  • registrarse para eventos a través de formularios en línea
  • ver participantes del evento
  • suscribirse y darse de baja de las listas de correo
  • acceder a todos los datos personalizados (es decir, ver o ingresar información en campos de datos personalizados en formularios)
  • acceder a los archivos cargados (es decir, ver o imprimir el contenido de los archivos cargados)
  • ver, crear y editar perfiles (o listas de perfiles y formularios)

El rol autenticado (registrado en Joomla, suscriptor en WordPress) se aplica a todos los visitantes del sitio que han iniciado sesión. Esta es la función predeterminada para todas las cuentas de usuario nuevas y no se puede eliminar. Por defecto, los permisos de CiviCRM para este rol son los mismos que los del rol anónimo.

Puede modificar los permisos para usuarios anónimos y autenticados si es necesario, como muestran los siguientes escenarios comunes.

Obteniendo contribuciones en línea

Si solo desea contribuciones de usuarios registrados, debe eliminar el permiso para realizar contribuciones en línea del rol "anónimo" o "público".

Ver información de eventos y registrarse para eventos

Si "ver información del evento" y "registrarse para eventos" están habilitados para los roles anónimos y autenticados, entonces todos los visitantes de su sitio podrán registrarse para cualquier evento. Si desea dar solo a usuarios específicos la capacidad de ver o registrarse para algunos eventos, debe usar una ACL de CiviCRM, permitiendo al rol un acceso de "vista" a los eventos si solo deben poder ver la información del evento, y los permisos de "edición" si pueden registrarse. Sin embargo, para que esto funcione, la ACL de "registro de eventos" en el CMS debe estar deshabilitada, ya que anulará esta configuración.

Por ejemplo, una organización benéfica organiza eventos ocasionales de recaudación de fondos para el público y cenas por la noche separadas para algunos de sus donantes corporativos. Cualquier visitante del sitio web puede registrarse y participar en un evento de recaudación de fondos, sin embargo, las cenas son privadas y solo deben estar disponibles para algunos de sus donantes. En este caso, se deben usar las ACL de CiviCRM en lugar de la regla de CMS "registrarse para eventos", ya que se pueden especificar los eventos específicos a los que puede acceder cada grupo de usuarios.

Editar datos de perfil en formularios en línea

Los perfiles son colecciones de campos predeterminados y personalizados, y se pueden usar en formularios en línea para recopilar información adicional de los visitantes o crear directorios en los que se puedan realizar búsquedas (consulte "Perfiles").

Si tiene un perfil independiente en un formulario en línea que se usa para buscar y editar datos en CiviCRM (por ejemplo, que no forma parte de una página de registro de eventos), solo los usuarios autenticados pueden editar. El permiso de "edición de perfil" se puede otorgar al rol anónimo, pero los visitantes que no hayan iniciado sesión no podrán editar los datos a menos que tengan un checksum (una URL única a una página donde pueden editar sus propios datos; leer "Tareas cotidianas" en la sección de correo electrónico para obtener más información). Para que los tokens de los checksum funcionen, los usuarios anónimos deben tener el permiso de "edición de perfil".

Recopilar datos de visitantes anónimos mediante perfiles

Si ha creado perfiles para recopilar datos de visitantes anónimos a través de formularios en línea (por ejemplo, páginas de registro de eventos, páginas de contribución y formularios de perfil independientes), deberá otorgar el permiso "crear perfil" a la función "anónimo". Además, si el perfil contiene algún campo personalizado, será necesario otorgar un permiso adicional, según las circunstancias. Lea "Accediendo a datos personalizados" a continuación.

Creación de directorios de búsqueda para el público

Los perfiles se pueden utilizar para crear directorios con capacidad de búsqueda; una forma de criterio de búsqueda capaz de recopilar una lista de resultados de la base de datos (por ejemplo, encontrar organizaciones contenidas en la base de datos por ubicación). Si desea otorgar acceso a un grupo de usuarios a las páginas de búsqueda publicadas en el sitio web, marque la opción "listados de perfil" para ese rol o grupo de usuarios.

Vista de perfil

Cuando se utilicen perfiles dentro de las páginas en línea (por ejemplo, para mostrar el nombre de una organización, la descripción y los datos de contacto de la base de datos), el visitante debe tener el permiso "vista de perfil" para verlo.

Uso del permiso "Formularios y listas de perfiles"

Este derecho de acceso debe asignarse con cuidado y solo a roles de confianza. El permiso otorga acceso a:

  • Añadir datos a través de perfiles en formularios en línea
  • Editar los datos que se muestran en perfiles independientes en páginas públicas, si se da la opción (por ejemplo, información de contacto)
  • Utilizar directorios públicos de búsqueda

Siempre que sea posible, cada uno de estos derechos de acceso debe asignarse a un rol por separado, no a través del permiso "permitir todas las acciones". "Formularios y listas de perfiles" no está habilitado para los roles "anónimo" y "autenticado" de forma predeterminada.

Tenga en cuenta que si este rol se asignó a usuarios anónimos, para poder editar los datos, el visitante debe iniciar sesión o usar un token de checksum (consulte "Tareas cotidianas" en la sección de correo electrónico).

Accediendo a datos personalizados

Si se han utilizado campos de datos personalizados en un formulario en línea o dentro de los perfiles, el usuario no podrá interactuar con ellos a menos que se le haya dado permiso para ver y/o editar datos personalizados. Hay dos formas de asignar estos permisos:

  1. Habilitar el permiso "acceder a todos los datos personalizados" en los roles a los que desea otorgar acceso para ver y editar. Si esto se diera a la función "anónimo", por ejemplo, podrían ver y editar todos los campos personalizados en formularios en línea (por ejemplo, campos de datos personalizados dentro de un perfil que se ha incorporado a una página de registro de eventos). Sin embargo, este es un enfoque de "todo o nada".
  2. Alternativamente, se pueden crear ACL de CiviCRM para dar acceso a los roles solo a conjuntos específicos de campos de datos personalizados. Se debe utilizar esta opción cuando se desee dar acceso a grupos de usuarios a diferentes conjuntos de datos, por ejemplo, un equipo en Ámsterdam solo puede tener acceso a campos de voluntarios personalizados, mientras que la oficina central en Escocia tiene acceso tanto a campos de voluntarios personalizados como a campos de donantes personalizados. Tenga en cuenta que estas ACL no funcionarán si se utiliza el permiso "acceder a todos los datos personalizados" en el CMS; ese permiso en Drupal o Joomla! anulará estas configuraciones en CiviCRM.

Accediendo a archivos cargados

Habilite el permiso "acceder a archivos cargados" para cualquier función que necesite ver imágenes, fotos y archivos adjuntos a los registros y páginas de CiviCRM. Asegúrese de asignar este permiso al rol "anónimo" si desea que los visitantes vean fotos adjuntas a registros de contactos, páginas de campañas personales, documentos destinados al consumo público, etc.

Dar a los usuarios la posibilidad de ver su panel de contactos

Puede proporcionar a los usuarios autenticados (conectados) acceso a una pantalla donde pueden revisar los grupos de correo a los que se han suscrito, sus contribuciones, membresías y registros de eventos (cuando corresponda). Asigne el permiso "acceder al panel de contactos" a los roles cuyos usuarios tendrán acceso a esta función. No habilite esto para el rol "anónimo".

Otros Roles del CMS

Cada CMS también tiene otros roles predefinidos que brindan diferentes cantidades de acceso a CiviCRM. Nuevamente, puede cambiar los permisos otorgados a estos roles, pero debe asegurarse de que siempre haya un rol (Administrador / Superusuarios / Administrador) que tenga la capacidad de administrar CiviCRM, incluida la gestión del control de acceso.

Es posible que también desee añadir roles adicionales para permitir accesos específicos a la funcionalidad de CiviCRM.

Puede encontrar más información sobre los permisos de CiviCRM (opciones de control de acceso), incluidos los permisos necesarios para realizar ciertas funciones administrativas, en http://wiki.civicrm.org/confluence/display/CRMDOC/Default+Permissions+and+Roles.

ACL nativas de CiviCRM

Como se mencionó anteriormente, las ACL de CiviCRM son una forma más avanzada y específica de administrar el acceso de los usuarios a los registros a través de grupos de contactos, asignados a roles de ACL. Si bien un control de acceso en el CMS puede 'cancelar' la visibilidad de secciones enteras de CiviCRM y determinar si un usuario puede ver, editar, eliminar o crear datos en las diferentes áreas del sistema, no puede subdividir estas reglas en acceso a diferentes tipos de registros. Por ejemplo:

Una organización benéfica con sede en Chicago tiene tres oficinas regionales y debe brindarle a su personal de recaudación de fondos la capacidad de crear y editar registros de contacto para posibles donantes. Han decidido que el departamento de recaudación de fondos de cada oficina solo puede tener acceso a sus contactos locales. Si bien el permiso "añadir contactos" se puede otorgar a usuarios autenticados en el CMS (Drupal, Joomla! o WordPress), si también se asignaran de esta manera "ver todos los contactos" y "editar todos los contactos", no habría forma de diferenciar entre los tres grupos de donantes (ubicaciones). Esto solo se puede lograr con las ACL de CiviCRM.

Para comenzar, se debe acceder a: Administrar > Usuario y Permisos > Permisos (Control de Acceso). Esta pantalla lo vinculará a la lista de control de acceso de CMS y los tres pasos para administrar las ACL nativas de CiviCRM.

Administrar roles

Aquí es donde puede crear roles de ACL. De forma predeterminada, tendrá "administrador" y "autenticado" (conectado), pero sólo se puede editar el rol de administrador; "autenticado" es una función reservada y fundamental para el sistema.

Al seleccionar "Añadir Rol ACL" se mostrará una pantalla para crear un nuevo rol con las siguientes opciones:

  • Etiqueta: este es el nombre del rol y será visible para los usuarios
  • Descripción: crea y proporciona un formato a una descripción del rol
  • Orden: asigne un número al rol para determinar su lugar en la lista (por ejemplo, "1" coloca el rol en la parte superior, mientras que "20" puede enviarlo al final; los números más bajos aparecen antes que los más altos)
  • ¿Habilitado?: ¿el rol se encuentra habilitado o no? Si desactiva esta opción, la funcionalidad puede dejar de funcionar para algunos usuarios

image

Asignar usuarios a roles ACL de CiviCRM

Una vez configurados los roles, puede comenzar a asignarlos a los usuarios. En CiviCRM esto se hace en dos pasos:

Primero cree un grupo de control de acceso para una selección de usuarios que tendrán el mismo nivel de acceso. Hay varias formas de hacer esto, descritas en el capítulo "Grupos y Etiquetas".

El grupo de contactos de ACL ahora se puede asignar a un rol. Seleccione el segundo paso en la pantalla de Control de Acceso ("Asignar Usuarios a Roles ACL de CiviCRM") y presione "Añadir asignación de rol". Complete lo siguiente:

  • Rol de ACL: seleccione un rol ACL disponible
  • Asignado a: elija un grupo de contactos para asignar al rol

  • ¿Habilitado?: ¿esta asignación está habilitada o no?

image

Administrar ACL

El tercer paso es donde finalmente se crean las ACL. Se pueden dividir en las siguientes preguntas:

  1. ¿Qué rol tendrá permiso para realizar esta acción?
  2. ¿Cuál es la acción / operación? ¿Es la capacidad de ver / editar / eliminar / crear, etc.?
  3. ¿Sobre qué conjunto de datos se puede realizar la acción?

Para comenzar a crear estas ACL, regrese a la pantalla de Control de Acceso (Administrar > Usuario y Permisos > Permisos...) y seleccione "Administrar ACLs". Se mostrará una lista de los controles existentes, que probablemente incluirá uno para los administradores que les otorgue permiso para editar todos los contactos de la base de datos. Para agregar uno nuevo, seleccione "Añadir ACL" y complete lo siguiente:

  • Descripción: escriba una descripción clara de lo que hace la ACL
  • Rol: elija una función para asignar la ACL de la lista desplegable
  • Operación: seleccione la acción que este rol puede realizar (por ejemplo, ver, editar, crear, eliminar ...)
  • Tipo de dato: elija el tipo de datos al que se refiere la operación:
  • Un grupo de contactos
  • Un perfil
  • Grupo de campos para datos personalizados
  • Eventos
  • Grupo / Perfil / Dato Personalizado / Evento: la etiqueta en este campo se establece en base a su selección en "Tipo de dato". Aquí es donde selecciona el grupo específico de contactos, perfil, datos personalizados o evento para esta ACL
  • ¿Habilitado?: ¿Está habilitada la ACL?

image