From 8f136405250fc39183dafc8b973b6a797c88274d Mon Sep 17 00:00:00 2001
From: Hangzhi Yu <hangzhi@protonmail.com>
Date: Fri, 7 Aug 2020 00:26:35 +0200
Subject: [PATCH] Add permissions for management of extra marks

---
 aleksis/apps/alsijil/rules.py | 16 ++++++++++++++++
 aleksis/apps/alsijil/views.py |  8 ++++----
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/aleksis/apps/alsijil/rules.py b/aleksis/apps/alsijil/rules.py
index c9321c4e1..789f299b4 100644
--- a/aleksis/apps/alsijil/rules.py
+++ b/aleksis/apps/alsijil/rules.py
@@ -127,3 +127,19 @@ add_perm("alsijil.edit_excusetype", edit_excusetype_predicate)
 # Delete excuse type
 delete_excusetype_predicate = has_person & has_global_perm("alsijil.delete_excusetype")
 add_perm("alsijil.delete_excusetype", delete_excusetype_predicate)
+
+# View extra mark list
+view_extramark_predicate = has_person & has_global_perm("alsijil.view_extramark")
+add_perm("alsijil.view_extramark", view_extramark_predicate)
+
+# Add extra mark
+add_extramark_predicate = has_person & has_global_perm("alsijil.add_extramark")
+add_perm("alsijil.add_extramark", add_extramark_predicate)
+
+# Edit extra mark
+edit_extramark_predicate = has_person & has_global_perm("alsijil.change_extramark")
+add_perm("alsijil.edit_extramark", edit_extramark_predicate)
+
+# Delete extra mark
+delete_extramark_predicate = has_person & has_global_perm("alsijil.delete_extramark")
+add_perm("alsijil.delete_excusetype", delete_extramark_predicate)
diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py
index 0bbd6beca..aa4330cec 100644
--- a/aleksis/apps/alsijil/views.py
+++ b/aleksis/apps/alsijil/views.py
@@ -496,7 +496,7 @@ class ExtraMarkListView(SingleTableView, PermissionRequiredMixin):
 
     model = ExtraMark
     table_class = ExtraMarkTable
-    permission_required = "core.view_extramark"
+    permission_required = "alsijil.view_extramark"
     template_name = "alsijil/extra_mark/list.html"
 
 
@@ -505,7 +505,7 @@ class ExtraMarkCreateView(AdvancedCreateView, PermissionRequiredMixin):
 
     model = ExtraMark
     form_class = ExtraMarkForm
-    permission_required = "core.create_extramark"
+    permission_required = "alsijil.create_extramark"
     template_name = "alsijil/extra_mark/create.html"
     success_url = reverse_lazy("extra_marks")
     success_message = _("The extra mark has been created.")
@@ -516,7 +516,7 @@ class ExtraMarkEditView(AdvancedEditView, PermissionRequiredMixin):
 
     model = ExtraMark
     form_class = ExtraMarkForm
-    permission_required = "core.edit_extramark"
+    permission_required = "alsijil.edit_extramark"
     template_name = "alsijil/extra_mark/edit.html"
     success_url = reverse_lazy("extra_marks")
     success_message = _("The extra mark has been saved.")
@@ -526,7 +526,7 @@ class ExtraMarkDeleteView(AdvancedDeleteView, PermissionRequiredMixin, RevisionM
     """Delete view for extra marks"""
 
     model = ExtraMark
-    permission_required = "core.delete_extramark"
+    permission_required = "alsijil.delete_extramark"
     template_name = "core/pages/delete.html"
     success_url = reverse_lazy("extra_marks")
     success_message = _("The extra mark has been deleted.")
-- 
GitLab