Saltar al contenido principal
Al crear un nuevo usuario, la interfaz de usuario muestra una lista desplegable donde puede elegir las membresías que desea asignarle. Estas membresías se definen mediante el Memberships Query Hook.

Contrato de Hook

  • ctx: Objeto de contexto.
  • callback(error, { createMemberships: true/false, memberships: }): callback en la que puedes devolver un error y un objeto con la configuración de membresías.

Ejemplo de uso

Los usuarios del departamento de TI deben poder crear usuarios en otros departamentos. Los usuarios de los demás departamentos solo deben poder crear usuarios para sus propios departamentos.
function(ctx, callback) {
  var currentDepartment = ctx.payload.user.app_metadata && ctx.payload.user.app_metadata.department;
  if (!currentDepartment || !currentDepartment.length) {
    return callback(null, [ ]);
  }

  if (currentDepartment === 'IT') {
    return callback(null, [ 'IT', 'HR', 'Finance', 'Marketing' ]);
  }

  return callback(null, [ ctx.payload.user.app_metadata.department ]);
}

Notas

Como esta consulta solo puede usarse en la UI, deberá asignar las membresías mediante el Write Hook si necesita aplicar reglas sobre la asignación de usuarios a departamentos específicos. Si solo hay un grupo de membresía posible, el campo Memberships no se mostrará en la UI. Puede permitir que el usuario final introduzca cualquier valor en el campo memberships estableciendo createMemberships en true:
function(ctx, callback) {
  var currentDepartment = ctx.payload.user.app_metadata.department;
  if (!currentDepartment || !currentDepartment.length) {
    return callback(null, [ ]);
  }

  return callback(null, {
    createMemberships: ctx.payload.user.app_metadata.department === 'IT' ? true : false,
    memberships: [ ctx.payload.user.app_metadata.department ]
  });
}

Más información