summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorRob van der Linde <rob@catalyst.net.nz>2024-02-19 14:49:43 +1300
committerAndrew Bartlett <abartlet@samba.org>2024-03-01 04:45:36 +0000
commitcd395558b0294f3c19255ef92f71b5bd66b72fc0 (patch)
tree031d212d18a706be195ba019f22a182f010163ae /python
parentcf110742af08390b0f9f1ccd91b0eff255c8a92a (diff)
downloadsamba-cd395558b0294f3c19255ef92f71b5bd66b72fc0.tar.gz
samba-cd395558b0294f3c19255ef92f71b5bd66b72fc0.tar.bz2
samba-cd395558b0294f3c19255ef92f71b5bd66b72fc0.zip
netcmd: models: avoid fetching each user in trustees method
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>
Diffstat (limited to 'python')
-rw-r--r--python/samba/netcmd/domain/models/user.py17
1 files changed, 3 insertions, 14 deletions
diff --git a/python/samba/netcmd/domain/models/user.py b/python/samba/netcmd/domain/models/user.py
index 78efaf27e64..c4c241b6585 100644
--- a/python/samba/netcmd/domain/models/user.py
+++ b/python/samba/netcmd/domain/models/user.py
@@ -20,12 +20,10 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-from ldb import FLAG_MOD_ADD, Dn
+from ldb import Dn
-from samba.dcerpc import security
from samba.dsdb import (DS_GUID_MANAGED_SERVICE_ACCOUNTS_CONTAINER,
DS_GUID_USERS_CONTAINER)
-from samba.ndr import ndr_unpack
from .fields import (BinaryField, DnField, EnumField, IntegerField, SDDLField,
SIDField, StringField, NtTimeField)
@@ -122,21 +120,12 @@ class GroupManagedServiceAccount(User):
def get_object_class():
return "msDS-GroupManagedServiceAccount"
- def trustees(self, ldb):
+ def trustees(self):
"""Returns list of trustees from the msDS-GroupMSAMembership SDDL.
:return: list of User objects
"""
- users = []
- field = self.fields["group_msa_membership"]
- sddl = self.group_msa_membership
- message = field.to_db_value(ldb, sddl, FLAG_MOD_ADD)
- desc = ndr_unpack(security.descriptor, message[0])
-
- for ace in desc.dacl.aces:
- users.append(User.get(ldb, object_sid=ace.trustee))
-
- return users
+ return [str(ace.trustee) for ace in self.group_msa_membership.dacl.aces]
@classmethod
def find(cls, ldb, name):