]> git.ipfire.org Git - ipfire.org.git/commitdiff
people: Add moderator group for mod rights on Discourse
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 28 Oct 2019 19:41:14 +0000 (19:41 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 28 Oct 2019 19:41:14 +0000 (19:41 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/backend/accounts.py
src/web/people.py

index 57e3b8c272750aeb0190770b89ca2c294257af92..f8db50a7871fc8e784ac3cf657d12f9ba988205f 100644 (file)
@@ -603,10 +603,13 @@ class Account(Object):
                ))
 
        def is_admin(self):
-               return "sudo" in self.groups
+               return self.is_member_of_group("sudo")
 
        def is_staff(self):
-               return "staff" in self.groups
+               return self.is_member_of_group("staff")
+
+       def is_moderator(self):
+               return self.is_member_of_group("moderators")
 
        def has_shell(self):
                return "posixAccount" in self.classes
@@ -701,6 +704,12 @@ class Account(Object):
 
                return groups
 
+       def is_member_of_group(self, gid):
+               """
+                       Returns True if this account is a member of this group
+               """
+               return gid in (g.gid for g in self.groups)
+
        # Created/Modified at
 
        @property
index 90aefefde1bde1d65a0ae7a04e49f0e7babef6ff..758da2aec4e553cb2c11b73371030c175e62fa63 100644 (file)
@@ -301,7 +301,7 @@ class SSODiscourse(auth.CacheMixin, base.BaseHandler):
 
                        # Group memberships
                        "admin" : "true" if account.is_admin() else "false",
-                       "moderator" : "true" if account.is_staff() else "false",
+                       "moderator" : "true" if account.is_moderator() else "false",
                }
 
                # Format payload and sign it