From b99aa5729de4f9073b940a5d98e1172bd8225aff Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sun, 16 Jul 2017 20:48:46 +0200 Subject: [PATCH] fixed issue with tool visibility --- lam/HISTORY | 5 +++++ lam/lib/tools/serverInfo.inc | 4 ++-- lam/templates/config/confmain.php | 9 ++++++--- lam/templates/main_header.php | 6 ++++-- lam/templates/tools.php | 4 +++- 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/lam/HISTORY b/lam/HISTORY index b9fc346f..a0ca3071 100644 --- a/lam/HISTORY +++ b/lam/HISTORY @@ -1,3 +1,8 @@ +July 2017 6.0.1 + - Fixed bugs: + -> Configuration file fills up with empty values + -> Tool visibility settings + 26.06.2017 6.0 - Support multiple configurations for same account type - PHP 7.1 compatibility diff --git a/lam/lib/tools/serverInfo.inc b/lam/lib/tools/serverInfo.inc index f65c1a36..bce1a008 100644 --- a/lam/lib/tools/serverInfo.inc +++ b/lam/lib/tools/serverInfo.inc @@ -4,7 +4,7 @@ namespace LAM\TOOLS\SERVER_INFO; $Id$ This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) - Copyright (C) 2009 - 2016 Roland Gruber + Copyright (C) 2009 - 2017 Roland Gruber This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -78,7 +78,7 @@ class toolServerInformation implements \LAMTool { * @return boolean true if password change rights are needed */ function getRequiresPasswordChangeRights() { - return true; + return false; } /** diff --git a/lam/templates/config/confmain.php b/lam/templates/config/confmain.php index ea93c979..86e1d3e9 100644 --- a/lam/templates/config/confmain.php +++ b/lam/templates/config/confmain.php @@ -496,11 +496,12 @@ for ($r = 0; $r < (sizeof($tools) / 4); $r++) { } $tool = $tools[($r * 4) + $c]; $toolClass = get_class($tool); + $toolName = substr($toolClass, strrpos($toolClass, '\\') + 1); $selected = false; - if (isset($toolSettings['tool_hide_' . $toolClass]) && ($toolSettings['tool_hide_' . $toolClass] === 'true')) { + if (isset($toolSettings['tool_hide_' . $toolName]) && ($toolSettings['tool_hide_' . $toolName] === 'true')) { $selected = true; } - $toolSettingsContent->addElement(new htmlTableExtendedInputCheckbox('tool_hide_' . $toolClass, $selected, $tool->getName(), null, false)); + $toolSettingsContent->addElement(new htmlTableExtendedInputCheckbox('tool_hide_' . $toolName, $selected, $tool->getName(), null, false)); $toolSettingsContent->addElement(new htmlSpacer('10px', null)); } $toolSettingsContent->addNewLine(); @@ -761,7 +762,9 @@ function checkInput() { $tools = getTools(); $toolSettings = array(); for ($i = 0; $i < sizeof($tools); $i++) { - $toolConfigID = 'tool_hide_' . $tools[$i]; + $toolClass = $tools[$i]; + $toolName = substr($toolClass, strrpos($toolClass, '\\') + 1); + $toolConfigID = 'tool_hide_' . $toolName; if ((isset($_POST[$toolConfigID])) && ($_POST[$toolConfigID] == 'on')) { $toolSettings[$toolConfigID] = 'true'; } diff --git a/lam/templates/main_header.php b/lam/templates/main_header.php index 6183cb78..6a65fe43 100644 --- a/lam/templates/main_header.php +++ b/lam/templates/main_header.php @@ -86,7 +86,8 @@ $toolSettings = $_SESSION['config']->getToolSettings(); // sort tools $toSort = array(); for ($i = 0; $i < sizeof($availableTools); $i++) { - $myTool = new $availableTools[$i](); + $toolClass = $availableTools[$i]; + $myTool = new $toolClass(); if ($myTool->getRequiresWriteAccess() && !checkIfWriteAccessIsAllowed()) { continue; } @@ -98,7 +99,8 @@ for ($i = 0; $i < sizeof($availableTools); $i++) { continue; } // check if hidden by config - if (isset($toolSettings['tool_hide_' . get_class($myTool)]) && ($toolSettings['tool_hide_' . get_class($myTool)] == 'true')) { + $toolName = substr($toolClass, strrpos($toolClass, '\\') + 1); + if (isset($toolSettings['tool_hide_' . $toolName]) && ($toolSettings['tool_hide_' . $toolName] == 'true')) { continue; } $toSort[$availableTools[$i]] = $myTool->getPosition(); diff --git a/lam/templates/tools.php b/lam/templates/tools.php index be87eaa4..9a81e7bb 100644 --- a/lam/templates/tools.php +++ b/lam/templates/tools.php @@ -77,7 +77,9 @@ for ($i = 0; $i < sizeof($tools); $i++) { continue; } // check if hidden by config - if (isset($toolSettings['tool_hide_' . get_class($tools[$i])]) && ($toolSettings['tool_hide_' . get_class($tools[$i])] == 'true')) { + $className = get_class($tools[$i]); + $toolName = substr($className, strrpos($className, '\\') + 1); + if (isset($toolSettings['tool_hide_' . $toolName]) && ($toolSettings['tool_hide_' . $toolName] == 'true')) { continue; } // add tool