samba-tool: add --full-dn option to group listmembers command
authorJule Anger <ja@sernet.de>
Thu, 22 Aug 2019 13:39:37 +0000 (15:39 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 21 Jan 2020 14:38:44 +0000 (14:38 +0000)
With this option the command lists the groupmembers distinguished names
instead of the sAMAccountName.

Signed-off-by: Jule Anger <ja@sernet.de>
Reviewed-by: Björn Baumbach <bb@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
python/samba/netcmd/group.py

index cabb56c23dbe74114cf5ce3384888af553a7aef6..ac3dbd9bb02b804ba9c961fa1f37040d470d2e94 100644 (file)
@@ -396,6 +396,10 @@ samba-tool group listmembers \"Domain Users\" -H ldap://samba.samdom.example.com
     takes_options = [
         Option("-H", "--URL", help="LDB URL for database or target server", type=str,
                metavar="URL", dest="H"),
+        Option("--full-dn", dest="full_dn",
+               default=False,
+               action='store_true',
+               help="Display DN instead of the sAMAccountName.")
     ]
 
     takes_optiongroups = {
@@ -406,7 +410,13 @@ samba-tool group listmembers \"Domain Users\" -H ldap://samba.samdom.example.com
 
     takes_args = ["groupname"]
 
-    def run(self, groupname, credopts=None, sambaopts=None, versionopts=None, H=None):
+    def run(self,
+            groupname,
+            credopts=None,
+            sambaopts=None,
+            versionopts=None,
+            H=None,
+            full_dn=False):
         lp = sambaopts.get_loadparm()
         creds = credopts.get_credentials(lp, fallback_machine=True)
 
@@ -437,6 +447,10 @@ samba-tool group listmembers \"Domain Users\" -H ldap://samba.samdom.example.com
                 return
 
             for msg in res:
+                if full_dn:
+                    self.outf.write("%s\n" % msg.get("dn"))
+                    continue
+
                 member_name = msg.get("samAccountName", idx=0)
                 if member_name is None:
                     member_name = msg.get("cn", idx=0)