]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
netcmd: gmsa: show viewers also works if SID is not found
authorRob van der Linde <rob@catalyst.net.nz>
Tue, 12 Mar 2024 00:06:31 +0000 (13:06 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 20 Mar 2024 03:49:35 +0000 (03:49 +0000)
Signed-off-by: Rob van der Linde <rob@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/netcmd/service_account/group_msa_membership.py

index d3d2b445fc0c64b30f0d2efeda3d2c6f666cd62a..e27e333d9d2a6096764c5fe01726be09e0e9edf1 100644 (file)
@@ -59,14 +59,14 @@ class cmd_service_account_group_msa_membership_show(Command):
             raise CommandError(f"Group managed service account {name} not found.")
 
         try:
-            trustees = [Model.get(ldb, object_sid=sid, polymorphic=True) for sid in gmsa.trustees]
+            trustees = {sid: Model.get(ldb, object_sid=sid, polymorphic=True) for sid in gmsa.trustees}
         except ModelError as e:
             raise CommandError(e)
 
         if output_format == "json":
             self.print_json({
                 "dn": gmsa.dn,
-                "trustees": [trustee.dn for trustee in trustees]
+                "trustees": [trustee.dn if trustee else f"<SID={sid}>" for sid, trustee in trustees.items()]
             })
         else:
             print(f"Account-DN: {gmsa.dn}", file=self.outf)
@@ -74,8 +74,9 @@ class cmd_service_account_group_msa_membership_show(Command):
             print("Accounts or groups that are able to retrieve this group managed service account password:",
                   file=self.outf)
 
-            for trustee in trustees:
-                print(f"  {trustee.dn}", file=self.outf)
+            for sid, trustee in trustees.items():
+                dn = trustee.dn if trustee else f"<SID={sid}>"
+                print(f"  {dn}", file=self.outf)
 
 
 class cmd_service_account_group_msa_membership_add(Command):