From 97b0ab22708a5d47b692fb911be4ac7e05cff3aa Mon Sep 17 00:00:00 2001
From: gloas <gloas@afi-sa.fr>
Date: Mon, 18 Jun 2018 16:14:10 +0200
Subject: [PATCH] dev #75882 : fix failures

---
 library/ZendAfi/Acl/AdminControllerGroup.php  | 28 ++++++++++++++++++-
 library/ZendAfi/Acl/AdminControllerRoles.php  | 27 ++++++++++++++++--
 .../CodificationBrowserTest.php               |  2 ++
 3 files changed, 53 insertions(+), 4 deletions(-)

diff --git a/library/ZendAfi/Acl/AdminControllerGroup.php b/library/ZendAfi/Acl/AdminControllerGroup.php
index 8419c0fcb03..13e54798eee 100644
--- a/library/ZendAfi/Acl/AdminControllerGroup.php
+++ b/library/ZendAfi/Acl/AdminControllerGroup.php
@@ -67,7 +67,33 @@ class ZendAfi_Acl_AdminControllerGroup {
                           'stat/piwik' => (new Class_AdminVar_Piwik())->isEnabled(),
                           'multimedia' => Class_AdminVar::isMultimediaEnabled(),
                           'search-form' => Class_AdminVar::isCustomSearchFormEnabled(),
-                          'codification-browser' => Class_AdminVar::isCodificationBrowserEnabled()];
+                          ];
+
+    $this->_activated = array_merge($this->_activated,
+                                    $this->_codififications());
+  }
+
+
+  protected function _codififications() {
+    $enabled = Class_AdminVar::isCodificationBrowserEnabled();
+
+    return array_fill_keys(['codification-browser',
+                            'thesauri',
+                            'author-browser',
+                            'location-browser',
+                            'site-browser',
+                            'language-browser',
+                            'section-browser',
+                            'domain-browser',
+                            'genre-browser',
+                            'subject-browser',
+                            'tag-browser',
+                            'doctype-browser',
+                            'pcdm4-browser',
+                            'dewey-browser',
+                            'interest-browser',
+                            'library-browser'],
+                           $enabled);
   }
 
 
diff --git a/library/ZendAfi/Acl/AdminControllerRoles.php b/library/ZendAfi/Acl/AdminControllerRoles.php
index 04e25b2e9b2..d95fe0bcf58 100644
--- a/library/ZendAfi/Acl/AdminControllerRoles.php
+++ b/library/ZendAfi/Acl/AdminControllerRoles.php
@@ -94,7 +94,26 @@ class ZendAfi_Acl_AdminControllerRoles extends Zend_Acl {
     $this->add(new Zend_Acl_Resource('batch'));
     $this->add(new Zend_Acl_Resource('file-manager'));
     $this->add(new Zend_Acl_Resource('search-form'));
-    $this->add(new Zend_Acl_Resource('codification-browser'));
+
+    $codifications = ['codification-browser',
+                      'thesauri',
+                      'author-browser',
+                      'location-browser',
+                      'site-browser',
+                      'language-browser',
+                      'section-browser',
+                      'domain-browser',
+                      'genre-browser',
+                      'subject-browser',
+                      'tag-browser',
+                      'doctype-browser',
+                      'pcdm4-browser',
+                      'dewey-browser',
+                      'interest-browser',
+                      'library-browser'];
+
+    foreach($codifications as $controller)
+      $this->add(new Zend_Acl_Resource($controller));
 
     //Roles
     $this->addRole(new Zend_Acl_Role('invite'));
@@ -149,7 +168,8 @@ class ZendAfi_Acl_AdminControllerRoles extends Zend_Acl {
     $this->allow('admin_bib','menus');
     $this->allow('admin_bib','external-agendas');
     $this->allow('admin_bib','search-form');
-    $this->allow('admin_bib','codification-browser');
+    foreach($codifications as $controller)
+      $this->allow('admin_bib', $controller);
 
     $this->deny('modo_portail','catalogue');
     $this->deny('modo_portail','rss');
@@ -170,7 +190,8 @@ class ZendAfi_Acl_AdminControllerRoles extends Zend_Acl {
     $this->deny('modo_portail','systeme');
     $this->deny('modo_portail','batch');
     $this->deny('modo_portail','search-form');
-    $this->deny('modo_portail','codification-browser');
+    foreach($codifications as $controller)
+      $this->deny('modo_portail', $controller);
 
     $this->allow('modo_portail');
     $this->allow('admin_portail');
diff --git a/tests/scenarios/CodificationBrowser/CodificationBrowserTest.php b/tests/scenarios/CodificationBrowser/CodificationBrowserTest.php
index 77cfd2c3ea1..3a48a7913af 100644
--- a/tests/scenarios/CodificationBrowser/CodificationBrowserTest.php
+++ b/tests/scenarios/CodificationBrowser/CodificationBrowserTest.php
@@ -27,6 +27,8 @@ class CodificationBrowserIndexDispatchTest extends Admin_AbstractControllerTestC
 
   public function setUp() {
     parent::setUp();
+    Class_AdminVar::set('CODIFICATION_BROWSER', 1);
+
     $this->dispatch('/admin/codification-browser/index', true);
   }
 
-- 
GitLab