DC

Cómo asignar un rol de usuario usando ECA?

enero 31, 2026

En este ejemplo comparto cómo agregar un rol de usuario luego de un registro exitoso en nuestro sitio permitiendole al usuario elegir el rol en el formulario de registro.

  1. Debemos elegir el evento “Form submit” y completar “Restrict by form ID” con “user-register-form” y “Restrict by entity type ID” con “user”. De esta manera el evento sólamente es ejecutado en el formulario de registro solamente.
  2. Ahora debemos ejecutar una acción que cambie el usuario actual por uno con mayores privilegios. En nuestro evento “Form submit” el usuario que está ejecutando ese evento, es el usuario anónimo, por lo tanto, este usuario no tiene permisos para asignar roles. Entonces, para poder asignar los roles, tenemos que ejecutar la acción “User: switch current account”. Y poner en “User ID (UID)” el valor de un usuario con suficientes permisos para asignar un rol, en mi caso simplemente voy a usar el usuario “1” que es el administrador principal del sitio. Una buena práctica sería crear un usuario con permisos limitados para asignar roles, ya que el usuario 1 tiene permisos muy elevados.
  3. En mi formulario de registro agregué un nuevo campo llamado “Role_ID_selected” que le permite al usuario elegir un rol. En mi condición, pregunto qué valor tiene ese campo utilizando Compare two scalar values completando “First value” con “[form:values:Role_ID_selected]” y “Second value” con “store_owner” o “content_editor”.
  4. En el último paso ejecutamos la acción Add a role to the selected users eligiendo el rol correspondiente en cada caso y en el campo “Entity” escribir “user” que hace referencia al usuario anónimo que está ejecutando el evento.

Ahora si vamos a /admin/people vemos los usuarios registrados con los roles correspondientes.

Cómo agregar un campo extra al formulario de registro de usuario usando ECA?

En el ejemplo anterior usé un campo llamado “Role_ID_selected” que es un campo que agregué en el mismo modelo de ECA.

  1. Para poder hacerlo debemos elegir el evento Build Form y en el campo “Restrict by form ID” completar “user-register-form” para que el único formulario que cambiemos sea el de registro de usuario.
  2. Ahora agregamos la acción Form: add options field y completamos “Field name” como “Role ID selected” y en “Options” ponemos “content_editor:Content Editor,store_owner:Store Owner” que son las opciones que queremos que el campo tenga. Deben estar separadas por coma y el primer valor es el valor en crudo y el segundo es lo que se ve en pantalla.

Y así es como se ve nuestro formulario luego de guardar nuestro modelo:

Contenido relacionado

Cómo asignar un rol de usuario usando ECA?

En este ejemplo comparto cómo agregar un rol de usuario luego de un registro exitoso en nuestro sitio permitiendole al usuario elegir el rol en el formulario de registro. Debemos...

Instalar Drupal 10 y drush en Opalstack

Esta es una guía de cómo instalar Drupal 10 (o superior) en el hosting Opalstack. Pre requisitos: – Debemos tener instalado composer en nuestro entorno de Opalstack. Para hacerlo seguir...

Desarrollo remoto 1

En este seminario buscamos en dos horas poder enseñarle a una persona a crear su sitio web, aprender lo básico de Drupal y cómo usamos HTML y CSS, cómo cargamos...

Crear vistas en Drupal 10 (Views Module)

Views es un modulo que nos sirve para mostrar contenidos que provienen de nuestra base de datos, con diferentes formatos, filtros, estilos, orden, cantidad. Son basicamente una Query SQL. En...