Contrato del Hook
-
ctx: Objeto de contexto.
- request.user: Usuario con la sesión iniciada actualmente.
- locale: Configuración regional (inferida de la URL) —
https://{yourTenant}.us.webtask.io/auth0-delegated-admin/en/usersestablecerá locale enen.
- callback(error, settings): Callback en el que puede devolver un error y un objeto de configuración.
Ejemplo de uso
Propiedades
- connections: Lista de conexiones en las que este administrador puede crear y editar usuarios.
-
dict: Diccionario que le permite reemplazar el título del Dashboard y la etiqueta Membresías en el cuadro de diálogo Crear usuario.
- dict.title: Título que se mostrará en la parte superior de la interfaz de usuario.
- dict.memberships: Etiqueta que se establecerá para los campos de membresías.
- dict.menuName: Nombre que se establecerá para el menú desplegable de la esquina superior derecha.
- dict.logoutUrl: URL alternativa para la opción de menú de cierre de sesión.
- userFields: Array de campos de usuario (consulte “Campos personalizados” más abajo).
- css: URL de tipo cadena para importar CSS.
- altcss: URL de tipo cadena para importar un segundo conjunto de CSS. Puede usarla para especificar elementos como CSS de accesibilidad para fuentes más grandes. Al usuario se le mostrará una opción de menú que le permitirá activar o desactivar este conjunto de CSS.
- languageDictionary: URL de tipo cadena u objeto de diccionario (consulte “Localización” más abajo).
- suppressRawData: Establézcalo en true para omitir las páginas que muestran JSON sin procesar
-
errorTranslator: Función que traduce mensajes de error según la localización. Ejemplo:
(function (error, languageDictionary) { return languageDictionary.customErrors[error] || error; }).toString() -
canCreateUser: Indicador booleano. Si se establece en
false, elimina el botónCreate Usery prohíbe crear nuevos usuarios;truede forma predeterminada.
Campos personalizados
- Agregar su lista de userFields a Settings Query Hook
- Implementar un Write Hook. Los campos personalizados requieren el uso de Write Hook para actualizar correctamente
user_metadatayapp_metadata. Debe actualizar el objeto de usuario que se pasa a la función callback conuser_metadatayapp_metadatadel contexto (objetoctx) proporcionado al Hook.
-
property (obligatorio): Nombre de la propiedad del objeto ctx.payload para el Write Hook. En el Write Hook,
"property": "app_metadata.dbId"establece el valor dectx.payload.app_metadata.dbId. - label: Etiqueta que se usará al añadir una etiqueta al campo en la página de información del usuario, la página de creación, la página de edición del perfil o la página de búsqueda.
- sortProperty: Si para la tabla de búsqueda se ordena por un campo distinto de este, use este campo. Se admite la notación de puntos.
-
display: true || false || stringified => Este es el valor de visualización predeterminado. Si no se anula en search, edit o create, se usará este valor.
- si es
true, simplemente devolveráuser.<property>. - Predeterminado: si es
false, este valor no se mostrará en ninguna página (a menos que se anule en search, edit o create). - si es una función convertida en cadena, ejecuta la función para obtener el valor que se mostrará. Ejemplo:
(function display(user, value, languageDictionary) { return moment(value).fromNow(); }).toString()
- si es
-
search: false || object => Indica cómo se comportará este campo en la página de búsqueda.
- Predeterminado: si es
false, no se mostrará en la tabla de búsqueda. - search.display: Sobrescribe el valor de visualización predeterminado.
- search.listOrder: Especifica el orden de las columnas en la tabla de resultados de búsqueda.
- search.listSize: Especifica el ancho predeterminado de la columna.
- search.filter: Especifica si se permite buscar este campo en el menú desplegable de búsqueda. El valor predeterminado es false.
- search.sort: Especifica si esta columna se puede ordenar. Use sortProperty si desea ordenar por un campo distinto de property. El valor predeterminado es false.
- Predeterminado: si es
-
edit: false || object => Indica si el campo aparece en los cuadros de diálogo de edición. Si no es un campo predeterminado y se configura como un objeto, aparecerá en la página
Change Profile, en el menú desplegable User Actions de la página del usuario.-
Predeterminado: si es
false, no aparecerá en ninguna página de edición/actualización. - edit.display: Sobrescribe el valor de visualización predeterminado.
- edit.required: Establézcalo en true para que falle si no tiene ningún valor. El valor predeterminado es false.
- edit.type required: text || select || password
-
edit.component: InputText || Input Combo || InputMultiCombo || InputSelectCombo
- InputText (predeterminado): Cuadro de texto simple.
- InputCombo: Lista desplegable con búsqueda, con un solo valor.
- InputMultiCombo: Lista desplegable con búsqueda que permite varios valores.
- InputSelectCombo: Lista desplegable de opciones.
-
edit.options: Si el componente es InputCombo, InputMultiCombo o InputSelectCombo, se deben especificar los valores de las opciones.
- Array(string): Matriz de valores (los campos label y value se establecerán con el mismo valor).
- Array({ “value”: string, “label”: string }): Permite establecer valores distintos para value y label. Como resultado, el valor en el Write Hook tendrá ese mismo valor, pero puede simplificarse para dejar solo el valor en el Write Hook.
- La validación del lado del servidor garantizará que cualquier valor especificado para este campo aparezca en la matriz options.
-
edit.disabled:
truesi el componente debe ser de solo lectura; el valor predeterminado es false. -
edit.validateFunction: Función convertida en cadena para la validación. Tenga en cuenta que esta función de validación se ejecutará tanto del lado del servidor como del cliente. Ejemplo:
(function validate(value, values, context, languageDictionary) { if (value...) return 'something went wrong'; return false; }).toString().
-
Predeterminado: si es
-
create: false || object => Indica si el campo se muestra en el cuadro de diálogo de creación.
-
Predeterminado: si es
false, no aparecerá en la página de creación. - create.placeholder: Proporcione un texto de marcador de posición que se mostrará cuando el campo de entrada esté vacío.
- create.required: Establézcalo en true para que se produzca un error si no tiene un valor. El valor predeterminado es false.
- create.type required: text || select || password
-
create.component: InputText || Input Combo || InputMultiCombo || InputSelectCombo
- InputText (predeterminado): Cuadro de texto. Es el valor predeterminado para los tipos text y password.
- InputCombo: Lista desplegable con búsqueda, de un solo valor.
- InputMultiCombo: Lista desplegable con búsqueda que permite varios valores.
- InputSelectCombo: Lista desplegable de selección de opciones.
-
create.options: Si el componente es InputCombo, InputMultiCombo o InputSelectCombo, se deben especificar los valores de las opciones.
- Array(string): Matriz simple de valores; la etiqueta y el valor tendrán el mismo valor.
- Array({ “value”: string, “label”: string }): Le permite establecer valores independientes para el valor y la etiqueta. Esto hará que el valor en el Write Hook sea el mismo, pero puede reducirse para dejar solo el valor en el Write Hook.
- La validación del lado del servidor garantizará que cualquier valor especificado para este campo esté en la matriz de opciones.
- create.disabled: true si el componente debe ser de solo lectura; el valor predeterminado es false.
-
create.validateFunction: Función convertida en cadena para comprobar la validación.
- Ejemplo:
(function validate(value, values, context, languageDictionary) { if (value...) return 'something went wrong'; return false; }).toString() - Esta función de validación se ejecutará tanto del lado del servidor como del cliente.
- Ejemplo:
-
Predeterminado: si es
Campos predefinidos
Campos de búsqueda
- name: Campo generado a partir de otros campos: función de visualización predeterminada:
(function(user, value) { return (value || user.nickname || user.email || user.user_id); }).toString() - email: Dirección de correo electrónico o N/D
- last_login_relative: Hora del último inicio de sesión
- logins_count: Número de inicios de sesión
- connection: Conexión de base de datos
Campos de información del usuario
- user_id: ID del usuario
- name: Nombre del usuario
- username: Nombre de usuario del usuario
- email: Correo electrónico del usuario
- identity.connection: Valor de la conexión
- isBlocked: Si el usuario está bloqueado o no
- blocked_for: Si el usuario tiene bloqueos por
- last_ip: Última IP que el usuario utilizó para iniciar sesión
- logins_count: Número de veces que el usuario ha iniciado sesión
- currentMemberships: Lista de membresías de este usuario
- created_at: Fecha y hora en que se creó el usuario
- updated_at: Fecha y hora en que se actualizó el usuario
- last_login: Fecha y hora en que el usuario inició sesión por última vez
Crear y editar campos del usuario
- connection: Base de datos del usuario
- password: Nueva contraseña
- repeatPassword: Confirmación de la contraseña del usuario
- email: Correo electrónico del usuario
- username: Username del usuario
Ejemplo de uso
Localización
La localización está pensada para quienes trabajan con funciones no administrativas al gestionar usuarios. Actualmente, Auth0 no admite la localización en ninguna de las páginas de Configuration.
https://{yourTenant}.us.webtask.io/auth0-delegated-admin/en/users establecerá context.locale en en en la consulta de configuración.
El languageDictionary se configura como parte de la consulta de configuración, lo que le permite:
- Definir explícitamente un languageDictionary
- Proporcionar una URL para obtener el contenido del parámetro languageDictionary