From cc7ef05991bb1e520041fb41f776c8e4e9c82ec9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be> Date: Mon, 19 Jun 2017 16:18:17 +0200 Subject: [PATCH] Fixes #5625 Add a flag to force a tabClass to bypass ACLs --- include/simpleplugin/class_simplePlugin.inc | 3 +++ include/simpleplugin/class_simpleTabs.inc | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/include/simpleplugin/class_simplePlugin.inc b/include/simpleplugin/class_simplePlugin.inc index 6af36cad0..a09f7317b 100644 --- a/include/simpleplugin/class_simplePlugin.inc +++ b/include/simpleplugin/class_simplePlugin.inc @@ -942,6 +942,9 @@ class simplePlugin /*! \brief Get the acl permissions for an attribute or the plugin itself */ function aclGetPermissions($attribute = '0', $base = NULL, $skipWrite = FALSE) { + if (isset($this->parent) && isset($this->parent->ignoreAcls) && $this->parent->ignoreAcls) { + return 'cdmr'.($skipWrite ? '' : 'w'); + } $ui = get_userinfo(); $skipWrite |= $this->readOnly(); if ($base === NULL) { diff --git a/include/simpleplugin/class_simpleTabs.inc b/include/simpleplugin/class_simpleTabs.inc index eac23ff64..02bd7bf91 100644 --- a/include/simpleplugin/class_simpleTabs.inc +++ b/include/simpleplugin/class_simpleTabs.inc @@ -49,6 +49,8 @@ class simpleTabs var $baseclass = ""; + public $ignoreAcls = FALSE; + /*! * \brief Tabs classes constructor * */ @@ -512,6 +514,11 @@ class simpleTabs unset($obj); } + public function setIgnoreAcls($bool) + { + $this->ignoreAcls = $bool; + } + public function dialogOpened () { return $this->by_object[$this->current]->is_modal_dialog(); -- GitLab