diff --git a/bin/ldapuserdir-ctl b/bin/ldapuserdir-ctl index bb8d2e8..8fedc2a 100755 --- a/bin/ldapuserdir-ctl +++ b/bin/ldapuserdir-ctl @@ -227,11 +227,11 @@ parser.add_option('-V', default = False ) -parser.add_option('-r', - action = 'store_true', +parser.add_option('-R', + action = 'store_false', dest = 'recursive', - help = 'Recursively resolve groups', - default = False + help = "Don't recursively resolve groups", + default = True ) (options, args) = parser.parse_args() @@ -367,7 +367,8 @@ try: sys.stdout.write("\n".join(ldapdir.get_groups_for_user(user_to_group, gfilter=sfilter, mssfu=flag_mssfu, - returndn=flag_showdn)) + returndn=flag_showdn, + recursive=options.recursive)) + '\n') #sys.stdout.write("\n".join(ldapdir.get_groups_for_user(user_to_group)) # + "\n") diff --git a/ldapuserdir/ldapuserdir.py b/ldapuserdir/ldapuserdir.py index 3130c47..ee0e996 100755 --- a/ldapuserdir/ldapuserdir.py +++ b/ldapuserdir/ldapuserdir.py @@ -481,7 +481,7 @@ class LdapUserDir(object): return grplist def get_groups_for_user(self, user, gfilter=None, returndn=False, - mssfu=False): + mssfu=False, recursive=True): """Get groups for a particular user from LDAP. The function will try to determine whether it receives a DN or @@ -512,7 +512,7 @@ class LdapUserDir(object): else: dnname = user - reslist = self.get_memberof(dnname, recursive=True, mssfu=mssfu) + reslist = self.get_memberof(dnname, recursive=recursive, mssfu=mssfu) if not returndn: try: