From f3086d2822d5f93f2e680d26a74db112525c29f1 Mon Sep 17 00:00:00 2001
From: l26yan <l26yan@uwaterloo.ca>
Date: Thu, 7 Oct 2021 14:49:11 -0400
Subject: [PATCH] ISTWCMS-5125 Create permissions for Service content type

---
 src/UwPermissions/UwPermissions.php            | 18 ++++++++++++++++++
 .../user.role.uw_role_content_author.yml       |  5 +++++
 .../user.role.uw_role_content_editor.yml       |  5 +++++
 src/UwRoles/user.role.uw_role_site_manager.yml |  5 +++++
 uw_cfg_common.install                          | 16 ++++++++++++++++
 5 files changed, 49 insertions(+)

diff --git a/src/UwPermissions/UwPermissions.php b/src/UwPermissions/UwPermissions.php
index bc083a58..40237b80 100644
--- a/src/UwPermissions/UwPermissions.php
+++ b/src/UwPermissions/UwPermissions.php
@@ -199,6 +199,24 @@ class UwPermissions {
         ),
       ],
 
+      // Service permissions.
+      'Service' => [
+        'Use content type' =>
+        UwPermissions::buildRolePermissionsListContentType(
+        'uw_ct_service'
+        ),
+        'Create/edit categories' =>
+        UwPermissions::buildRolePermissionsListTaxonomyTerm(
+        'uw_vocab_service_categories',
+          ['create', 'edit']
+        ),
+        'Delete categories' =>
+        UwPermissions::buildRolePermissionsListTaxonomyTerm(
+        'uw_vocab_service_categories',
+          ['delete']
+        ),
+      ],
+
       // Sidebar permissions.
       'Sidebar' => [
         'Use content type' =>
diff --git a/src/UwRoles/user.role.uw_role_content_author.yml b/src/UwRoles/user.role.uw_role_content_author.yml
index f1583804..c1009b4b 100644
--- a/src/UwRoles/user.role.uw_role_content_author.yml
+++ b/src/UwRoles/user.role.uw_role_content_author.yml
@@ -49,6 +49,7 @@ permissions:
   - 'clone uw_ct_event content'
   - 'clone uw_ct_news_item content'
   - 'clone uw_ct_profile content'
+  - 'clone uw_ct_service content'
   - 'clone uw_ct_sidebar content'
   - 'clone uw_ct_web_page content'
   - 'configure editable uw_ct_blog node layout overrides'
@@ -57,6 +58,7 @@ permissions:
   - 'configure editable uw_ct_event node layout overrides'
   - 'configure editable uw_ct_news_item node layout overrides'
   - 'configure editable uw_ct_profile node layout overrides'
+  - 'configure editable uw_ct_service node layout overrides'
   - 'configure editable uw_ct_sidebar node layout overrides'
   - 'configure editable uw_ct_site_footer node layout overrides'
   - 'configure editable uw_ct_web_page node layout overrides'
@@ -93,6 +95,7 @@ permissions:
   - 'enter uw_ct_event revision log entry'
   - 'enter uw_ct_news_item revision log entry'
   - 'enter uw_ct_profile revision log entry'
+  - 'enter uw_ct_service revision log entry'
   - 'enter uw_ct_web_page revision log entry'
   - 'make smart dates recur'
   - 'override uw_ct_blog promote to front page option'
@@ -113,6 +116,8 @@ permissions:
   - 'override uw_ct_news_item sticky option'
   - 'override uw_ct_profile published option'
   - 'override uw_ct_profile revision option'
+  - 'override uw_ct_service published option'
+  - 'override uw_ct_service revision option'
   - 'override uw_ct_web_page published option'
   - 'override uw_ct_web_page revision option'
   - 'reschedule smart date recur instances'
diff --git a/src/UwRoles/user.role.uw_role_content_editor.yml b/src/UwRoles/user.role.uw_role_content_editor.yml
index 7534a0a9..4226291f 100644
--- a/src/UwRoles/user.role.uw_role_content_editor.yml
+++ b/src/UwRoles/user.role.uw_role_content_editor.yml
@@ -50,6 +50,7 @@ permissions:
   - 'clone uw_ct_event content'
   - 'clone uw_ct_news_item content'
   - 'clone uw_ct_profile content'
+  - 'clone uw_ct_service content'
   - 'clone uw_ct_sidebar content'
   - 'clone uw_ct_web_page content'
   - 'configure editable uw_ct_blog node layout overrides'
@@ -58,6 +59,7 @@ permissions:
   - 'configure editable uw_ct_event node layout overrides'
   - 'configure editable uw_ct_news_item node layout overrides'
   - 'configure editable uw_ct_profile node layout overrides'
+  - 'configure editable uw_ct_service node layout overrides'
   - 'configure editable uw_ct_sidebar node layout overrides'
   - 'configure editable uw_ct_site_footer node layout overrides'
   - 'configure editable uw_ct_web_page node layout overrides'
@@ -82,6 +84,7 @@ permissions:
   - 'enter uw_ct_event revision log entry'
   - 'enter uw_ct_news_item revision log entry'
   - 'enter uw_ct_profile revision log entry'
+  - 'enter uw_ct_service revision log entry'
   - 'enter uw_ct_web_page revision log entry'
   - 'make smart dates recur'
   - 'override uw_ct_blog promote to front page option'
@@ -102,6 +105,8 @@ permissions:
   - 'override uw_ct_news_item sticky option'
   - 'override uw_ct_profile published option'
   - 'override uw_ct_profile revision option'
+  - 'override uw_ct_service published option'
+  - 'override uw_ct_service revision option'
   - 'override uw_ct_web_page published option'
   - 'override uw_ct_web_page revision option'
   - 'reschedule smart date recur instances'
diff --git a/src/UwRoles/user.role.uw_role_site_manager.yml b/src/UwRoles/user.role.uw_role_site_manager.yml
index fa21dbc8..b0e18b09 100644
--- a/src/UwRoles/user.role.uw_role_site_manager.yml
+++ b/src/UwRoles/user.role.uw_role_site_manager.yml
@@ -54,6 +54,7 @@ permissions:
   - 'clone uw_ct_event content'
   - 'clone uw_ct_news_item content'
   - 'clone uw_ct_profile content'
+  - 'clone uw_ct_service content'
   - 'clone uw_ct_sidebar content'
   - 'clone uw_ct_web_page content'
   - 'configure editable uw_ct_blog node layout overrides'
@@ -62,6 +63,7 @@ permissions:
   - 'configure editable uw_ct_event node layout overrides'
   - 'configure editable uw_ct_news_item node layout overrides'
   - 'configure editable uw_ct_profile node layout overrides'
+  - 'configure editable uw_ct_service node layout overrides'
   - 'configure editable uw_ct_sidebar node layout overrides'
   - 'configure editable uw_ct_site_footer node layout overrides'
   - 'configure editable uw_ct_web_page node layout overrides'
@@ -100,6 +102,7 @@ permissions:
   - 'enter uw_ct_event revision log entry'
   - 'enter uw_ct_news_item revision log entry'
   - 'enter uw_ct_profile revision log entry'
+  - 'enter uw_ct_service revision log entry'
   - 'enter uw_ct_web_page revision log entry'
   - 'make smart dates recur'
   - 'override uw_ct_blog promote to front page option'
@@ -120,6 +123,8 @@ permissions:
   - 'override uw_ct_news_item sticky option'
   - 'override uw_ct_profile published option'
   - 'override uw_ct_profile revision option'
+  - 'override uw_ct_service published option'
+  - 'override uw_ct_service revision option'
   - 'override uw_ct_web_page published option'
   - 'override uw_ct_web_page revision option'
   - 'rearrange contacts'
diff --git a/uw_cfg_common.install b/uw_cfg_common.install
index b395945d..c22b14b3 100644
--- a/uw_cfg_common.install
+++ b/uw_cfg_common.install
@@ -169,6 +169,21 @@ function uw_cfg_common_install() {
         'Site manager',
       ],
     ],
+    'Service' => [
+      'Use content type' => [
+        'Site manager',
+        'Content author',
+        'Content editor',
+      ],
+      'Create/edit categories' => [
+        'Site manager',
+        'Content author',
+        'Content editor',
+      ],
+      'Delete categories' => [
+        'Site manager',
+      ],
+    ],
     'Sidebar' => [
       'Use content type' => [
         'Site manager',
@@ -440,6 +455,7 @@ function uw_cfg_common_update_8103() {
     'clone uw_ct_event content',
     'clone uw_ct_news_item content',
     'clone uw_ct_profile content',
+    'clone uw_ct_service content',
     'clone uw_ct_sidebar content',
     'clone uw_ct_web_page content',
   ];
-- 
GitLab