]> git.ipfire.org Git - ipfire.org.git/commitdiff
accounts: Cache group memberships
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 7 May 2019 10:19:30 +0000 (11:19 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 7 May 2019 10:19:30 +0000 (11:19 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/backend/accounts.py

index c278c07d3c84fdb23f6b9e5b5781ede445e298d5..dfdebf98e6426b7f6526bf964a3e7e7ae0c76502 100644 (file)
@@ -427,6 +427,19 @@ class Account(Object):
 
        @lazy_property
        def groups(self):
+               groups = self.memcache.get("accounts:%s:groups" % self.dn)
+               if groups:
+                       return groups
+
+               # Fetch groups from LDAP
+               groups = self._get_groups()
+
+               # Cache groups for 5 min
+               self.memcache.set("accounts:%s:groups" % self.dn, groups, 300)
+
+               return groups
+
+       def _get_groups(self):
                groups = []
 
                res = self.accounts._query("(&(objectClass=posixGroup) \