From 08615e54d9a9d002eb6341cffd2120b54c8ba0b0 Mon Sep 17 00:00:00 2001
From: Henning Leutz <leutz@pcsg.de>
Date: Tue, 10 May 2022 10:32:45 +0200
Subject: [PATCH] refactor: menu permissions

---
 ajax/backend/independent/create.php |  2 +-
 ajax/backend/independent/delete.php |  2 +-
 ajax/backend/independent/save.php   |  2 +-
 locale.xml                          | 17 +++++++++++++++++
 menu.xml                            |  1 +
 permissions.xml                     |  5 +++--
 6 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/ajax/backend/independent/create.php b/ajax/backend/independent/create.php
index 3b78cf4..8e32759 100644
--- a/ajax/backend/independent/create.php
+++ b/ajax/backend/independent/create.php
@@ -26,5 +26,5 @@ function ($title, $workingTitle) {
         return $Menu->getId();
     },
     ['title', 'workingTitle'],
-    'Permission::checkAdminUser'
+    'quiqqer.menu.create'
 );
diff --git a/ajax/backend/independent/delete.php b/ajax/backend/independent/delete.php
index 3f63672..0a2610d 100644
--- a/ajax/backend/independent/delete.php
+++ b/ajax/backend/independent/delete.php
@@ -19,5 +19,5 @@ function ($ids) {
         }
     },
     ['ids'],
-    'Permission::checkAdminUser'
+    'quiqqer.menu.delete'
 );
diff --git a/ajax/backend/independent/save.php b/ajax/backend/independent/save.php
index 59b3c3b..b0cf8fc 100644
--- a/ajax/backend/independent/save.php
+++ b/ajax/backend/independent/save.php
@@ -25,5 +25,5 @@ function ($id, $title, $workingTitle, $data) {
         );
     },
     ['id', 'title', 'workingTitle', 'data'],
-    'Permission::checkAdminUser'
+    'quiqqer.menu.edit'
 );
diff --git a/locale.xml b/locale.xml
index e984818..343b1d7 100644
--- a/locale.xml
+++ b/locale.xml
@@ -227,6 +227,23 @@
             <de><![CDATA[Bild]]></de>
             <en><![CDATA[Image]]></en>
         </locale>
+
+        <locale name="permission.quiqqer.menu._header">
+            <de><![CDATA[QUIQQER Menü]]></de>
+            <en><![CDATA[QUIQQER Menu]]></en>
+        </locale>
+        <locale name="permission.quiqqer.menu.create">
+            <de><![CDATA[Darf Menüs anlegen]]></de>
+            <en><![CDATA[Is allowed to create menus]]></en>
+        </locale>
+        <locale name="permission.quiqqer.menu.delete">
+            <de><![CDATA[Darf Menüs löschen]]></de>
+            <en><![CDATA[Is allowed to delete menus]]></en>
+        </locale>
+        <locale name="permission.quiqqer.menu.edit">
+            <de><![CDATA[Darf Menüs editieren]]></de>
+            <en><![CDATA[Is allowed to edit menus]]></en>
+        </locale>
     </groups>
 
     <groups name="quiqqer/menu" datatype="php">
diff --git a/menu.xml b/menu.xml
index a59587c..4f6d930 100644
--- a/menu.xml
+++ b/menu.xml
@@ -4,6 +4,7 @@
           name="menu-management"
           icon="fa fa-bars"
           require="package/quiqqer/menu/bin/Controls/Independent/MenuManagement"
+          permission="quiqqer.menu.edit"
     >
         <locale group="quiqqer/menu" var="menu.text"/>
     </item>
diff --git a/permissions.xml b/permissions.xml
index bdbd755..3c883e0 100644
--- a/permissions.xml
+++ b/permissions.xml
@@ -1,14 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <permissions>
-
     <permission name="quiqqer.menu.create" type="bool">
         <defaultvalue>1</defaultvalue>
+        <everyonePermission>0</everyonePermission>
     </permission>
     <permission name="quiqqer.menu.delete" type="bool">
         <defaultvalue>1</defaultvalue>
+        <everyonePermission>0</everyonePermission>
     </permission>
     <permission name="quiqqer.menu.edit" type="bool">
         <defaultvalue>1</defaultvalue>
+        <everyonePermission>0</everyonePermission>
     </permission>
-
 </permissions>
-- 
GitLab