From: Michael Tremer Date: Mon, 28 Oct 2019 19:41:14 +0000 (+0000) Subject: people: Add moderator group for mod rights on Discourse X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=eae206f4ff821ddd95b287b11eae048615be8294;p=ipfire.org.git people: Add moderator group for mod rights on Discourse Signed-off-by: Michael Tremer --- diff --git a/src/backend/accounts.py b/src/backend/accounts.py index 57e3b8c2..f8db50a7 100644 --- a/src/backend/accounts.py +++ b/src/backend/accounts.py @@ -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 diff --git a/src/web/people.py b/src/web/people.py index 90aefefd..758da2ae 100644 --- a/src/web/people.py +++ b/src/web/people.py @@ -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