我正在使用 FreeIPA,并已成功扩展其属性,但注意到添加到 FreeIPA 的 Python 插件中的验证功能仅适用于通过命令行输入的值。通过 Web UI 输入的值将按原样存储,而无需验证。
因此,我想在服务器中添加以下修改:
- 启用 FreeIPA Web UI 在存储属性值之前验证它。
- 创建一种新的语法类型供 LDAP 使用(例如血型语法)。
- 将 Web UI 中的属性文本框更改为下拉列表。
答案1
- 为了启用 WebUI 来验证用户输入,这不是必需的,因为可以通过 FreeIPA Python 插件中的验证功能进行验证(我只需要重新启动服务器即可使更改生效)。
- 我没有必要创建新的语法,我希望用它来替代验证过程,而且由于它正在运行,所以没有必要。
- 要更改属性字段类型,您需要在 javascript 文件中创建新的属性字段时添加“$type”:
创建一个文本区域:
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
。