mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-24 16:10:02 -06:00
IDRange CLI: allow to work without arguments
Fixes https://fedorahosted.org/freeipa/ticket/2999
This commit is contained in:
parent
377e1267b7
commit
67b47a65f2
2
API.txt
2
API.txt
@ -1888,7 +1888,7 @@ args: 1,11,3
|
||||
arg: Str('cn', attribute=True, cli_name='name', multivalue=False, primary_key=True, required=True)
|
||||
option: Int('ipabaseid', attribute=True, cli_name='base_id', multivalue=False, required=True)
|
||||
option: Int('ipaidrangesize', attribute=True, cli_name='range_size', multivalue=False, required=True)
|
||||
option: Int('ipabaserid', attribute=True, cli_name='rid_base', multivalue=False, required=True)
|
||||
option: Int('ipabaserid', attribute=True, cli_name='rid_base', multivalue=False, required=False)
|
||||
option: Int('ipasecondarybaserid', attribute=True, cli_name='secondary_rid_base', multivalue=False, required=False)
|
||||
option: Str('ipanttrusteddomainsid', attribute=True, cli_name='dom_sid', multivalue=False, required=False)
|
||||
option: Str('iparangetype', attribute=True, cli_name='iparangetype', multivalue=False, required=False)
|
||||
|
@ -63,7 +63,7 @@ class idrange(LDAPObject):
|
||||
cli_name='range_size',
|
||||
label=_("Number of IDs in the range"),
|
||||
),
|
||||
Int('ipabaserid',
|
||||
Int('ipabaserid?',
|
||||
cli_name='rid_base',
|
||||
label=_('First RID of the corresponding RID range'),
|
||||
),
|
||||
@ -150,15 +150,25 @@ class idrange_add(LDAPCreate):
|
||||
|
||||
def pre_callback(self, ldap, dn, entry_attrs, attrs_list, *keys, **options):
|
||||
assert isinstance(dn, DN)
|
||||
if ('ipanttrusteddomainsid' not in options and
|
||||
'ipasecondarybaserid' not in options):
|
||||
raise errors.ValidationError(name=_('Range setup'),
|
||||
error=_('Ranges for local domain ' \
|
||||
'must have a secondary RID base'))
|
||||
|
||||
if 'ipanttrusteddomainsid' in options:
|
||||
if 'ipasecondarybaserid' in options:
|
||||
raise errors.ValidationError(name=_('ID Range setup'),
|
||||
error=_('Options dom_sid and secondary_rid_base cannot ' \
|
||||
'be used together'))
|
||||
|
||||
if 'ipabaserid' not in options:
|
||||
raise errors.ValidationError(name=_('ID Range setup'),
|
||||
error=_('Options dom_sid and rid_base must ' \
|
||||
'be used together'))
|
||||
|
||||
entry_attrs['objectclass'].append('ipatrustedaddomainrange')
|
||||
else:
|
||||
if (('ipasecondarybaserid' in options) != ('ipabaserid' in options)):
|
||||
raise errors.ValidationError(name=_('ID Range setup'),
|
||||
error=_('Options secondary_rid_base and rid_base must ' \
|
||||
'be used together'))
|
||||
|
||||
entry_attrs['objectclass'].append('ipadomainidrange')
|
||||
|
||||
return dn
|
||||
|
Loading…
Reference in New Issue
Block a user