aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/settings.py
diff options
context:
space:
mode:
authorGravatar Gareth Coles <[email protected]>2019-10-14 14:12:57 +0100
committerGravatar Gareth Coles <[email protected]>2019-10-14 14:12:57 +0100
commitdb37eca546c7d2746aca15d2e0485245c9a3b9b6 (patch)
tree674383cbc65ac8ec516ef6aec95e9e403f24c099 /pydis_site/settings.py
parentDjango Allauth (#201) (#274) (diff)
Wiki: Permissions hotfix
Diffstat (limited to 'pydis_site/settings.py')
-rw-r--r--pydis_site/settings.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/pydis_site/settings.py b/pydis_site/settings.py
index 9c88a056..f9b0ad1e 100644
--- a/pydis_site/settings.py
+++ b/pydis_site/settings.py
@@ -13,10 +13,15 @@ https://docs.djangoproject.com/en/2.1/ref/settings/
import os
import secrets
import sys
+import typing
import environ
from django.contrib.messages import constants as messages
+if typing.TYPE_CHECKING:
+ from django.contrib.auth.models import User
+ from wiki.models import Article
+
env = environ.Env(
DEBUG=(bool, False)
)
@@ -373,6 +378,25 @@ WIKI_MARKDOWN_HTML_WHITELIST = [
'article', 'section', 'button'
]
+
+# Wiki permissions
+
+
+def WIKI_CAN_DELETE(article: "Article", user: "User") -> bool: # noqa: N802
+ """Check whether a user may delete an article."""
+ return user.has_perm('wiki.delete_article')
+
+
+def WIKI_CAN_MODERATE(article: "Article", user: "User") -> bool: # noqa: N802
+ # """Check whether a user may moderate an article."""
+ return user.has_perm('wiki.moderate')
+
+
+def WIKI_CAN_WRITE(article: "Article", user: "User") -> bool: # noqa: N802
+ """Check whether a user may create or edit an article."""
+ return user.has_perm('wiki.change_article')
+
+
# Django Allauth stuff
AUTHENTICATION_BACKENDS = (