mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Builder and registry for validators
https://fedorahosted.org/freeipa/ticket/3235
This commit is contained in:
@@ -70,7 +70,7 @@ IPA.dns.config_entity = function(spec) {
|
||||
{
|
||||
$type: 'multivalued',
|
||||
name: 'idnsforwarders',
|
||||
validators: [IPA.dnsforwarder_validator()]
|
||||
validators: [ 'dnsforwarder']
|
||||
},
|
||||
{
|
||||
$type: 'radio',
|
||||
@@ -184,26 +184,28 @@ IPA.dns.zone_entity = function(spec) {
|
||||
$type: 'netaddr',
|
||||
name: 'idnsallowquery',
|
||||
validators: [
|
||||
IPA.network_validator({
|
||||
{
|
||||
$type: 'network',
|
||||
specials: ['any', 'none', 'localhost', 'localnets'],
|
||||
allow_negation: true,
|
||||
allow_host_address: true
|
||||
})]
|
||||
}]
|
||||
},
|
||||
{
|
||||
$type: 'netaddr',
|
||||
name: 'idnsallowtransfer',
|
||||
validators: [
|
||||
IPA.network_validator({
|
||||
{
|
||||
$type: 'network',
|
||||
specials: ['any', 'none', 'localhost', 'localnets'],
|
||||
allow_negation: true,
|
||||
allow_host_address: true
|
||||
})]
|
||||
}]
|
||||
},
|
||||
{
|
||||
$type: 'multivalued',
|
||||
name: 'idnsforwarders',
|
||||
validators: [IPA.dnsforwarder_validator()]
|
||||
validators: [ 'dnsforwarder']
|
||||
},
|
||||
{
|
||||
$type: 'radio',
|
||||
@@ -302,7 +304,7 @@ IPA.dns.zone_entity = function(spec) {
|
||||
$type: 'dnszone_name',
|
||||
name: 'name_from_ip',
|
||||
radio_name: 'dnszone_name_type',
|
||||
validators: [IPA.network_validator()]
|
||||
validators: ['network']
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -792,7 +794,7 @@ IPA.dns.get_record_metadata = function() {
|
||||
attributes: [
|
||||
{
|
||||
name: 'a_part_ip_address',
|
||||
validators: [IPA.ip_v4_address_validator()]
|
||||
validators: ['ip_v4_address']
|
||||
},
|
||||
{
|
||||
$type: 'checkbox',
|
||||
@@ -811,7 +813,7 @@ IPA.dns.get_record_metadata = function() {
|
||||
attributes: [
|
||||
{
|
||||
name:'aaaa_part_ip_address',
|
||||
validators: [IPA.ip_v6_address_validator()]
|
||||
validators: ['ip_v6_address']
|
||||
},
|
||||
{
|
||||
$type: 'checkbox',
|
||||
@@ -2533,6 +2535,7 @@ IPA.register('dnsrecord', IPA.dns.record_entity);
|
||||
phases.on('registration', function() {
|
||||
var w = reg.widget;
|
||||
var f = reg.field;
|
||||
var v = reg.validator;
|
||||
|
||||
w.register('dnszone_name', IPA.dnszone_name_widget);
|
||||
w.register('force_dnszone_add_checkbox', IPA.force_dnszone_add_checkbox_widget);
|
||||
@@ -2545,6 +2548,12 @@ phases.on('registration', function() {
|
||||
f.register('dnsrecord_type_table', IPA.dns.record_type_table_field);
|
||||
w.register('netaddr', IPA.multivalued_widget);
|
||||
f.register('netaddr', IPA.dns.netaddr_field);
|
||||
|
||||
v.register('ip_address', IPA.ip_address_validator);
|
||||
v.register('ip_v4_address', IPA.ip_v4_address_validator);
|
||||
v.register('ip_v6_address', IPA.ip_v6_address_validator);
|
||||
v.register('dnsforwarder', IPA.dnsforwarder_validator);
|
||||
v.register('network', IPA.network_validator);
|
||||
});
|
||||
|
||||
return {};
|
||||
|
||||
@@ -75,7 +75,7 @@ IPA.field = function(spec) {
|
||||
that.undo = spec.undo === undefined ? true : spec.undo;
|
||||
|
||||
that.metadata = spec.metadata;
|
||||
that.validators = spec.validators || [];
|
||||
that.validators = builder.build('validator', spec.validators) || [];
|
||||
|
||||
that.priority = spec.priority;
|
||||
|
||||
@@ -914,7 +914,7 @@ exp.post_op = function(obj, spec, context) {
|
||||
return obj;
|
||||
};
|
||||
|
||||
// New builder and registry
|
||||
// Field builder and registry
|
||||
exp.builder = builder.get('field');
|
||||
exp.builder.factory = IPA.field;
|
||||
exp.builder.string_mode = 'property';
|
||||
@@ -923,8 +923,14 @@ reg.set('field', exp.builder.registry);
|
||||
exp.builder.pre_ops.push(exp.pre_op);
|
||||
exp.builder.post_ops.push(exp.post_op);
|
||||
|
||||
// Validator builder and registry
|
||||
exp.validator_builder = builder.get('validator');
|
||||
//exp.validator_builder.factory = IPA.formatter;
|
||||
reg.set('validator', exp.validator_builder.registry);
|
||||
|
||||
exp.register = function() {
|
||||
var f = reg.field;
|
||||
var v = reg.validator;
|
||||
|
||||
f.register('checkbox', IPA.checkbox_field);
|
||||
f.register('checkboxes', IPA.checkboxes_field);
|
||||
@@ -941,6 +947,10 @@ exp.register = function() {
|
||||
f.register('textarea', IPA.field);
|
||||
f.register('text', IPA.field);
|
||||
f.register('value_map', IPA.field);
|
||||
|
||||
v.register('metadata', IPA.metadata_validator);
|
||||
v.register('unsupported', IPA.unsupported_validator);
|
||||
v.register('same_password', IPA.same_password_validator);
|
||||
};
|
||||
phases.on('registration', exp.register);
|
||||
|
||||
|
||||
@@ -230,7 +230,7 @@ IPA.host.entity = function(spec) {
|
||||
fields: [
|
||||
{
|
||||
name: 'ip_address',
|
||||
validators: [ IPA.ip_address_validator() ],
|
||||
validators: [ 'ip_address' ],
|
||||
metadata: IPA.get_command_option('host_add', 'ip_address')
|
||||
},
|
||||
{
|
||||
@@ -803,9 +803,10 @@ IPA.host.set_otp_dialog = function(spec) {
|
||||
label: '@i18n:password.verify_password',
|
||||
$type: 'password',
|
||||
required: true,
|
||||
validators: [IPA.same_password_validator({
|
||||
validators: [{
|
||||
$type: 'same_password',
|
||||
other_field: 'password1'
|
||||
})]
|
||||
}]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1500,9 +1500,10 @@ IPA.unauthorized_dialog = function(spec) {
|
||||
$type: 'password',
|
||||
required: true,
|
||||
label: text.get('@i18n:password.verify_password', "Verify Password"),
|
||||
validators: [IPA.same_password_validator({
|
||||
validators: [{
|
||||
$type: 'same_password',
|
||||
other_field: 'new_password'
|
||||
})]
|
||||
}]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -121,9 +121,10 @@ IPA.trust.entity = function(spec) {
|
||||
label: '@i18n:password.verify_password',
|
||||
widget: 'method.trust_secret_verify',
|
||||
flags: ['no_command'],
|
||||
validators: [IPA.same_password_validator({
|
||||
validators: [{
|
||||
$type: 'same_password',
|
||||
other_field: 'trust_secret'
|
||||
})]
|
||||
}]
|
||||
}
|
||||
],
|
||||
widgets: [
|
||||
|
||||
@@ -509,9 +509,10 @@ IPA.user_password_dialog = function(spec) {
|
||||
name: 'password2',
|
||||
label: '@i18n:password.verify_password',
|
||||
$type: 'password',
|
||||
validators: [IPA.same_password_validator({
|
||||
validators: [{
|
||||
$type: 'same_password',
|
||||
other_field: 'password1'
|
||||
})],
|
||||
}],
|
||||
required: true
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user