From f6c8448e98b29a52d5bda828474e5511df23a96a Mon Sep 17 00:00:00 2001
From: Rob Crittenden <rcritten@redhat.com>
Date: Wed, 13 Apr 2011 17:45:07 -0400
Subject: [PATCH] Always ask members in LDAP*ReverseMember commands.

This changes the API but alwaysask is enforced on the client only
so doesn't change the wire API so I'm not updating the API version.

ticket 1081
---
 API.txt                    |    8 ++++----
 ipalib/plugins/baseldap.py |    2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/API.txt b/API.txt
index 13b877c..451b456 100644
--- a/API.txt
+++ b/API.txt
@@ -1777,7 +1777,7 @@ arg: Str('cn', attribute=True, cli_name='name', label=Gettext('Privilege name',
 option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui', flags=['no_output'])
 option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui', flags=['no_output'])
 option: Str('version?', exclude='webui', flags=['no_option', 'no_output'])
-option: List('permission?', cli_name='permissions',ist('permission?', cli_name='permissions', doc='comma-separated list of permissions', label='permission', multivalue=True)
+option: List('permission?', alwaysask=True, cli_name='permissions',ist('permission?', alwaysask=True, cli_name='permissions', doc='comma-separated list of permissions', label='permission', multivalue=True)
 output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
 output: Output('failed', <type 'dict'>, Gettext('Members that could not be added', domain='ipa', localedir=None))
 output: Output('completed', <type 'int'>, Gettext('Number of permissions added', domain='ipa', localedir=None))
@@ -1832,7 +1832,7 @@ arg: Str('cn', attribute=True, cli_name='name', label=Gettext('Privilege name',
 option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui', flags=['no_output'])
 option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui', flags=['no_output'])
 option: Str('version?', exclude='webui', flags=['no_option', 'no_output'])
-option: List('permission?', cli_name='permissions',ist('permission?', cli_name='permissions', doc='comma-separated list of permissions', label='permission', multivalue=True)
+option: List('permission?', alwaysask=True, cli_name='permissions',ist('permission?', alwaysask=True, cli_name='permissions', doc='comma-separated list of permissions', label='permission', multivalue=True)
 output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
 output: Output('failed', <type 'dict'>, Gettext('Members that could not be added', domain='ipa', localedir=None))
 output: Output('completed', <type 'int'>, Gettext('Number of permissions removed', domain='ipa', localedir=None))
@@ -1958,7 +1958,7 @@ arg: Str('cn', attribute=True, cli_name='name', label=Gettext('Role name', domai
 option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui', flags=['no_output'])
 option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui', flags=['no_output'])
 option: Str('version?', exclude='webui', flags=['no_option', 'no_output'])
-option: List('privilege?', cli_name='privileges',ist('privilege?', cli_name='privileges', doc='comma-separated list of privileges', label='privilege', multivalue=True)
+option: List('privilege?', alwaysask=True, cli_name='privileges',ist('privilege?', alwaysask=True, cli_name='privileges', doc='comma-separated list of privileges', label='privilege', multivalue=True)
 output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
 output: Output('failed', <type 'dict'>, Gettext('Members that could not be added', domain='ipa', localedir=None))
 output: Output('completed', <type 'int'>, Gettext('Number of privileges added', domain='ipa', localedir=None))
@@ -2016,7 +2016,7 @@ arg: Str('cn', attribute=True, cli_name='name', label=Gettext('Role name', domai
 option: Flag('all', autofill=True, cli_name='all', default=False, exclude='webui', flags=['no_output'])
 option: Flag('raw', autofill=True, cli_name='raw', default=False, exclude='webui', flags=['no_output'])
 option: Str('version?', exclude='webui', flags=['no_option', 'no_output'])
-option: List('privilege?', cli_name='privileges',ist('privilege?', cli_name='privileges', doc='comma-separated list of privileges', label='privilege', multivalue=True)
+option: List('privilege?', alwaysask=True, cli_name='privileges',ist('privilege?', alwaysask=True, cli_name='privileges', doc='comma-separated list of privileges', label='privilege', multivalue=True)
 output: Entry('result', <type 'dict'>, Gettext('A dictionary representing an LDAP entry', domain='ipa', localedir=None))
 output: Output('failed', <type 'dict'>, Gettext('Members that could not be added', domain='ipa', localedir=None))
 output: Output('completed', <type 'int'>, Gettext('Number of privileges removed', domain='ipa', localedir=None))
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index 177b142..6f90e88 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -1460,7 +1460,7 @@ class LDAPModReverseMember(LDAPQuery):
                 name = to_cli(ldap_obj_name)
                 doc = self.reverse_param_doc % ldap_obj.object_name_plural
                 yield List('%s?' % name, cli_name='%ss' % name, doc=doc,
-                           label=ldap_obj.object_name)
+                           label=ldap_obj.object_name, alwaysask=True)
 
 
 class LDAPAddReverseMember(LDAPModReverseMember):
-- 
1.7.4

