diff options
-rw-r--r-- | ipalib/crud.py | 23 | ||||
-rw-r--r-- | ipalib/plugins/permission.py | 12 |
2 files changed, 26 insertions, 9 deletions
diff --git a/ipalib/crud.py b/ipalib/crud.py index 76d57daef..b7a665361 100644 --- a/ipalib/crud.py +++ b/ipalib/crud.py @@ -141,7 +141,13 @@ class Create(Method): for option in self.obj.params_minus(self.args): if 'no_create' in option.flags: continue - yield option.clone(attribute=True) + if 'ask_create' in option.flags: + yield option.clone( + attribute=True, query=True, required=False, + autofill=False, alwaysask=True + ) + else: + yield option.clone(attribute=True) if not self.extra_options_first: for option in super(Create, self).get_options(): yield option @@ -179,7 +185,13 @@ class Update(PKQuery): for option in self.obj.params_minus_pk(): if 'no_update' in option.flags: continue - yield option.clone(attribute=True, required=False, autofill=False) + if 'ask_update' in option.flags: + yield option.clone( + attribute=True, query=True, required=False, + autofill=False, alwaysask=True + ) + else: + yield option.clone(attribute=True, required=False, autofill=False) if not self.extra_options_first: for option in super(Update, self).get_options(): yield option @@ -210,7 +222,12 @@ class Search(Method): for option in self.obj.params_minus(self.args): if 'no_search' in option.flags: continue - if isinstance(option, parameters.Flag): + if 'ask_search' in option.flags: + yield option.clone( + attribute=True, query=True, required=False, + autofill=False, alwaysask=True + ) + elif isinstance(option, parameters.Flag): yield option.clone_retype( option.name, parameters.Bool, attribute=True, query=True, required=False, autofill=False diff --git a/ipalib/plugins/permission.py b/ipalib/plugins/permission.py index e97174abf..14d7b9656 100644 --- a/ipalib/plugins/permission.py +++ b/ipalib/plugins/permission.py @@ -116,38 +116,38 @@ class permission(LDAPObject): label=_('Attributes'), doc=_('Comma-separated list of attributes'), normalizer=lambda value: value.lower(), - alwaysask=True, + flags=('ask_create', 'ask_update'), ), StrEnum('type?', cli_name='type', label=_('Type'), doc=_('Type of IPA object (user, group, host, hostgroup, service, netgroup, dns)'), values=(u'user', u'group', u'host', u'service', u'hostgroup', u'netgroup', u'dns',), - alwaysask=True, + flags=('ask_create', 'ask_update'), ), Str('memberof?', cli_name='memberof', label=_('Member of group'), # FIXME: Does this label make sense? doc=_('Target members of a group'), - alwaysask=True, + flags=('ask_create', 'ask_update'), ), Str('filter?', cli_name='filter', label=_('Filter'), doc=_('Legal LDAP filter (e.g. ou=Engineering)'), - alwaysask=True, + flags=('ask_create', 'ask_update'), ), Str('subtree?', cli_name='subtree', label=_('Subtree'), doc=_('Subtree to apply permissions to'), - alwaysask=True, + flags=('ask_create', 'ask_update'), ), Str('targetgroup?', cli_name='targetgroup', label=_('Target group'), doc=_('User group to apply permissions to'), - alwaysask=True, + flags=('ask_create', 'ask_update'), ), ) |