Ampliación de LDAP y FreeIPA

Ampliación de LDAP y FreeIPA

Estoy trabajando con FreeIPA y extendí sus atributos exitosamente, pero noté que la función de verificación en el complemento de Python, agregado a FreeIPA, solo funciona para los valores ingresados ​​a través de la línea de comando. Los valores ingresados ​​a través de la interfaz de usuario web se almacenan tal cual sin verificación.

Por lo tanto, me preguntaba acerca de agregar las siguientes modificaciones al servidor:

  1. Habilite la interfaz de usuario web de FreeIPA para verificar el valor del atributo antes de almacenarlo.
  2. Cree un nuevo tipo de sintaxis para que lo utilice LDAP (como una sintaxis para el tipo de sangre).
  3. Cambie el cuadro de texto del atributo en la interfaz de usuario web a una lista desplegable.

Respuesta1

  1. Para permitir que WebUI verifique la entrada del usuario, no es necesario ya que la verificación se puede realizar mediante la función de verificación en el complemento FreeIPA Python (solo necesitaba reiniciar mi servidor para que los cambios surtieran efecto).
  2. No es necesario que cree una nueva sintaxis, la quería como reemplazo del proceso de verificación y como está funcionando no es necesario.
  3. Para cambiar el tipo de campo de un atributo, debe agregar "$type" al crear el nuevo campo de atributo en el archivo javascript:

crear un área de texto:

section.fields.push({
     $type:'textarea',
     name: 'ldap_attribute_name',
     label: 'some label name'
});

crear un menú desplegable:

section.fields.push({
     $type:'entity_select',
     other_entity:'user',         // get the users list
     other_field:'uid',           // get the user IDs and display them in the list
     name: 'ldap_attribute_name',
     label: 'some label name'
});

crear un botón de opción:

section.fields.push({
     $type:'radio',
     options:[          // create the new radio buttons
       {label:'first button label',value:'first button value'},
       {label:'second button label',value:'second button value'}
     ],
     name: 'ldap_attribute_name',
     label: 'some label name'
});

Puede buscar más opciones buscando en el /usr/share/ipa/ui/js/freeipa/app.jsarchivo.

información relacionada