]> git.ipfire.org Git - ipfire.org.git/commitdiff
accounts: Add function to add accounts to groups
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 19 Nov 2019 12:15:56 +0000 (12:15 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 19 Nov 2019 12:15:56 +0000 (12:15 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/backend/accounts.py

index 0d48270da99c179a29a370ae5d267d7ac5fe4a29..46a5061bf3779f81709ce57baa88529ff8640b31 100644 (file)
@@ -155,6 +155,10 @@ class LDAPObject(Object):
        def _delete_string(self, key, value):
                return self._delete_strings(key, [value,])
 
+       @property
+       def objectclasses(self):
+               return self._get_strings("objectClass")
+
 
 class Accounts(Object):
        def init(self):
@@ -1249,6 +1253,19 @@ class Group(LDAPObject):
 
                return sorted(members)
 
+       def add_member(self, account):
+               """
+                       Adds a member to this group
+               """
+               if "posixGroup" in self.objectclasses:
+                       self._add_string("memberUid", account.uid)
+               else:
+                       self._add_string("member", account.dn)
+
+               # Append to cached list of members
+               self.members.append(account)
+               self.members.sort()
+
 if __name__ == "__main__":
        a = Accounts()