diff options
| author | Rob van der Linde <rob@catalyst.net.nz> | 2024-02-19 14:49:43 +1300 |
|---|---|---|
| committer | Andrew Bartlett <abartlet@samba.org> | 2024-03-01 04:45:36 +0000 |
| commit | cd395558b0294f3c19255ef92f71b5bd66b72fc0 (patch) | |
| tree | 031d212d18a706be195ba019f22a182f010163ae /python | |
| parent | cf110742af08390b0f9f1ccd91b0eff255c8a92a (diff) | |
| download | samba-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.py | 17 |
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): |
