Skip to content
Snippets Groups Projects
Commit 14dbf815 authored by Hangzhi Yu's avatar Hangzhi Yu
Browse files

Add permission check for view FAQ

parent faf81898
No related branches found
No related tags found
1 merge request!12Resolve "Use permissions/rules"
......@@ -13,6 +13,7 @@ class HjelpGlobalPermissions(ExtensibleModel):
class Meta:
managed = False
permissions = (
("view_faq", _("Can view FAQ")),
("ask_faq", _("Can ask FAQ question")),
("report_issue", _("Can report issues")),
("send_feedback", _("Can send feedback"))
......
from django import forms
from django.utils.translation import gettext_lazy as _
from dynamic_preferences.types import StringPreference
from dynamic_preferences.types import BooleanPreference, StringPreference
from dynamic_preferences.preferences import Section
from aleksis.core.registries import site_preferences_registry
......@@ -11,6 +11,15 @@ from aleksis.core.settings import ADMINS as admins
hjelp = Section("hjelp")
@site_preferences_registry.register
class PublicFAQ(BooleanPreference):
section = hjelp
name = "public_faq"
default = False
required = False
verbose_name = _("Public visibility of FAQ")
@site_preferences_registry.register
class FAQRecipient(StringPreference):
field_class = forms.EmailField
......
......@@ -3,8 +3,15 @@ from rules import add_perm, always_allow
from aleksis.core.util.predicates import (
has_global_perm,
has_person,
is_site_preference_set,
)
# View FAQ
view_faq_predicate = is_site_preference_set("hjelp", "public_faq") | (
has_person & has_global_perm("hjelp.view_faq")
)
add_perm("hjelp.view_faq", view_faq_predicate)
# Ask FAQ question
ask_faq_predicate = has_person & has_global_perm("hjelp.ask_faq")
add_perm("hjelp.ask_faq", ask_faq_predicate)
......
......@@ -12,6 +12,7 @@ from aleksis.core.models import Activity
from aleksis.core.util.core_helpers import get_site_preferences
@permission_required("hjelp.view_faq")
def faq(request):
""" Shows the FAQ page """
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment