Estendendo LDAP e FreeIPA

Estendendo LDAP e FreeIPA

Estou trabalhando com o FreeIPA e estendi seus atributos com sucesso, mas notei que a função de verificação no plugin Python, adicionada ao FreeIPA, só funciona para os valores inseridos através da linha de comando. Os valores inseridos por meio da IU da web são armazenados como estão, sem verificação.

Portanto, fiquei pensando em adicionar as seguintes modificações ao servidor:

  1. Habilite a interface da web do FreeIPA para verificar o valor do atributo antes de armazená-lo.
  2. Crie um novo tipo de sintaxe a ser usado pelo LDAP (como uma sintaxe para o tipo sanguíneo).
  3. Altere a caixa de texto do atributo na UI da web para uma lista suspensa.

Responder1

  1. Para permitir que o WebUI verifique a entrada do usuário, isso não é necessário, pois a verificação pode ser feita pela função de verificação no plugin FreeIPA Python (só precisei reiniciar meu servidor para que as alterações entrassem em vigor).
  2. Não há necessidade de criar uma nova sintaxe, eu queria que ela substituísse o processo de verificação e como está funcionando não é necessário.
  3. Para alterar o tipo de campo de atributo você precisa adicionar "$type" ao criar o novo campo de atributo no arquivo javascript:

crie uma área de texto:

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

crie um menu suspenso:

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'
});

crie um botão de opção:

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'
});

você pode verificar mais opções escavando o /usr/share/ipa/ui/js/freeipa/app.jsarquivo.

informação relacionada