Я работаю с FreeIPA и успешно расширил его атрибуты, но заметил, что функция проверки в подключаемом модуле Python, добавленном в FreeIPA, работает только для значений, введенных через командную строку. Значения, введенные через веб-интерфейс, сохраняются без проверки.
Поэтому мне было интересно добавить на сервер следующие модификации:
создать текстовую область:
section.fields.push({
$type:'textarea',
name: 'ldap_attribute_name',
label: 'some label name'
});
создать раскрывающееся меню:
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'
});
создать переключатель:
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'
});
вы можете проверить наличие дополнительных опций, раскопав /usr/share/ipa/ui/js/freeipa/app.js
файл.