From ff178cdf344634e9cad6006ae3ebbc12e8174b5c Mon Sep 17 00:00:00 2001
From: Demian Katz <demian.katz@villanova.edu>
Date: Wed, 30 Aug 2017 13:58:29 -0400
Subject: [PATCH] Added access.PrimoModule permission.

---
 config/vufind/permissions.ini                              | 7 +++++++
 module/VuFind/src/VuFind/Controller/PrimoController.php    | 1 +
 .../VuFind/src/VuFind/Controller/PrimorecordController.php | 1 +
 3 files changed, 9 insertions(+)

diff --git a/config/vufind/permissions.ini b/config/vufind/permissions.ini
index ee7fe291f17..c5baa3ffe70 100644
--- a/config/vufind/permissions.ini
+++ b/config/vufind/permissions.ini
@@ -72,6 +72,7 @@
 ; access.DebugMode - Allows ?debug=true GET parameter to turn on debug mode
 ; access.EDSExtendedResults - Controls visibility of protected EDS results
 ; access.EITModule - Controls access to the EBSCO EIT module (if active)
+; access.PrimoModule - Controls access to ALL Primo content
 ; access.StaffViewTab - Controls access to the staff view tab in record mode
 ; access.SummonExtendedResults - Controls visibility of protected Summon results
 
@@ -80,6 +81,12 @@
 role = loggedin
 permission = access.EITModule
 
+; Default configuration for the Primo module (allow everyone by default).
+[default.PrimoModule]
+role[] = guest
+role[] = loggedin
+permission = access.PrimoModule
+
 ; Show staff view for all users by default
 [default.StaffViewTab]
 role[] = guest
diff --git a/module/VuFind/src/VuFind/Controller/PrimoController.php b/module/VuFind/src/VuFind/Controller/PrimoController.php
index 2d83b0944d4..0edcf335cff 100644
--- a/module/VuFind/src/VuFind/Controller/PrimoController.php
+++ b/module/VuFind/src/VuFind/Controller/PrimoController.php
@@ -46,6 +46,7 @@ class PrimoController extends AbstractSearch
      */
     public function __construct(ServiceLocatorInterface $sm)
     {
+        $this->accessPermission = 'access.PrimoModule';
         $this->searchClassId = 'Primo';
         parent::__construct($sm);
     }
diff --git a/module/VuFind/src/VuFind/Controller/PrimorecordController.php b/module/VuFind/src/VuFind/Controller/PrimorecordController.php
index fbd480fa776..f07a7ce0721 100644
--- a/module/VuFind/src/VuFind/Controller/PrimorecordController.php
+++ b/module/VuFind/src/VuFind/Controller/PrimorecordController.php
@@ -47,6 +47,7 @@ class PrimorecordController extends AbstractRecord
     public function __construct(ServiceLocatorInterface $sm)
     {
         // Override some defaults:
+        $this->accessPermission = 'access.PrimoModule';
         $this->searchClassId = 'Primo';
         $this->fallbackDefaultTab = 'Description';
 
-- 
GitLab