diff options
author | 2019-10-14 14:12:57 +0100 | |
---|---|---|
committer | 2019-10-14 14:12:57 +0100 | |
commit | db37eca546c7d2746aca15d2e0485245c9a3b9b6 (patch) | |
tree | 674383cbc65ac8ec516ef6aec95e9e403f24c099 /pydis_site/settings.py | |
parent | Django Allauth (#201) (#274) (diff) |
Wiki: Permissions hotfix
Diffstat (limited to 'pydis_site/settings.py')
-rw-r--r-- | pydis_site/settings.py | 24 |
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 = ( |