python: models: add get_primary_group method to User model
authorRob van der Linde <rob@catalyst.net.nz>
Tue, 30 Apr 2024 11:43:30 +0000 (23:43 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 10 May 2024 00:26:35 +0000 (00:26 +0000)
Signed-off-by: Rob van der Linde <rob@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
python/samba/domain/models/user.py

index 569986c8c5616d824341f494285b098254cf9a82..0ce6cf96d067d330b86ac158155e739b17b257d4 100644 (file)
@@ -27,6 +27,7 @@ from samba.dsdb import DS_GUID_USERS_CONTAINER
 
 from .exceptions import NotFound
 from .fields import DnField, EnumField, IntegerField, NtTimeField, StringField
+from .group import Group
 from .org import OrganizationalPerson
 from .types import AccountType, UserAccountControl
 
@@ -52,6 +53,11 @@ class User(OrganizationalPerson):
         """Return sAMAccountName rather than cn for User model."""
         return self.account_name
 
+    def get_primary_group(self, samdb) -> Group:
+        """Returns the primary Group object for this User."""
+        group_sid = f"{samdb.domain_sid}-{self.primary_group_id}"
+        return Group.get(samdb, object_sid=group_sid)
+
     @staticmethod
     def get_base_dn(samdb):
         """Return the base DN for the User model.