allow to disable tools
This commit is contained in:
parent
c46d809739
commit
2affd78df8
|
@ -1,5 +1,6 @@
|
||||||
June 2012
|
June 2012
|
||||||
- quick (un)lock for users
|
- quick (un)lock for users
|
||||||
|
- allow to disable tools
|
||||||
- LAM Pro:
|
- LAM Pro:
|
||||||
-> Custom fields module allows to manage custom LDAP attributes in Self Service
|
-> Custom fields module allows to manage custom LDAP attributes in Self Service
|
||||||
-> Separate group of names module for users allows to manage memberships if Unix module is not used (RFE 3504429)
|
-> Separate group of names module for users allows to manage memberships if Unix module is not used (RFE 3504429)
|
||||||
|
|
|
@ -208,6 +208,9 @@ class LAMConfig {
|
||||||
|
|
||||||
/** type settings */
|
/** type settings */
|
||||||
private $typeSettings = array();
|
private $typeSettings = array();
|
||||||
|
|
||||||
|
/** tool settings */
|
||||||
|
private $toolSettings = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Path to external lamdaemon script on server where it is executed
|
* Path to external lamdaemon script on server where it is executed
|
||||||
|
@ -281,7 +284,7 @@ class LAMConfig {
|
||||||
/** List of all settings in config file */
|
/** List of all settings in config file */
|
||||||
private $settings = array("ServerURL", "useTLS", "Passwd", "Admins", "treesuffix",
|
private $settings = array("ServerURL", "useTLS", "Passwd", "Admins", "treesuffix",
|
||||||
"defaultLanguage", "scriptPath", "scriptServer", "scriptRights", "cachetimeout",
|
"defaultLanguage", "scriptPath", "scriptServer", "scriptRights", "cachetimeout",
|
||||||
"modules", "activeTypes", "types", "accessLevel", 'loginMethod', 'loginSearchSuffix',
|
"modules", "activeTypes", "types", "tools", "accessLevel", 'loginMethod', 'loginSearchSuffix',
|
||||||
'loginSearchFilter', 'searchLimit', 'lamProMailFrom', 'lamProMailReplyTo', 'lamProMailSubject',
|
'loginSearchFilter', 'searchLimit', 'lamProMailFrom', 'lamProMailReplyTo', 'lamProMailSubject',
|
||||||
'lamProMailText', 'lamProMailIsHTML', 'httpAuthentication', 'loginSearchDN', 'loginSearchPassword');
|
'lamProMailText', 'lamProMailIsHTML', 'httpAuthentication', 'loginSearchDN', 'loginSearchPassword');
|
||||||
|
|
||||||
|
@ -336,6 +339,12 @@ class LAMConfig {
|
||||||
$pos = strpos($option, ":");
|
$pos = strpos($option, ":");
|
||||||
$this->typeSettings[substr($option, 0, $pos)] = substr($option, $pos + 2);
|
$this->typeSettings[substr($option, 0, $pos)] = substr($option, $pos + 2);
|
||||||
}
|
}
|
||||||
|
// tool settings
|
||||||
|
elseif (strtolower(substr($line, 0, $keylen + 2)) == "tools: ") {
|
||||||
|
$option = substr($line, $keylen + 2, strlen($line) - $keylen - 2);
|
||||||
|
$pos = strpos($option, ":");
|
||||||
|
$this->toolSettings[substr($option, 0, $pos)] = substr($option, $pos + 2);
|
||||||
|
}
|
||||||
// general settings
|
// general settings
|
||||||
else {
|
else {
|
||||||
$this->$keyword = substr($line, $keylen + 2, strlen($line) - $keylen - 2);
|
$this->$keyword = substr($line, $keylen + 2, strlen($line) - $keylen - 2);
|
||||||
|
@ -419,6 +428,15 @@ class LAMConfig {
|
||||||
$file_array[$i] = "types: " . $name . ": " . $this->typeSettings[$name] . "\n";
|
$file_array[$i] = "types: " . $name . ": " . $this->typeSettings[$name] . "\n";
|
||||||
$mod_saved[] = $name; // mark keyword as saved
|
$mod_saved[] = $name; // mark keyword as saved
|
||||||
}
|
}
|
||||||
|
// tool settings
|
||||||
|
elseif (strtolower(substr($line, 0, $keylen + 2)) == "tools: ") {
|
||||||
|
$option = substr($line, $keylen + 2, strlen($line) - $keylen - 2);
|
||||||
|
$pos = strpos($option, ":");
|
||||||
|
$name = substr($option, 0, $pos);
|
||||||
|
if (!isset($this->toolSettings[$name])) continue;
|
||||||
|
$file_array[$i] = "tools: " . $name . ": " . $this->toolSettings[$name] . "\n";
|
||||||
|
$mod_saved[] = $name; // mark keyword as saved
|
||||||
|
}
|
||||||
// general settings
|
// general settings
|
||||||
else {
|
else {
|
||||||
$file_array[$i] = $keyword . ": " . $this->$keyword . "\n";
|
$file_array[$i] = $keyword . ": " . $this->$keyword . "\n";
|
||||||
|
@ -470,6 +488,13 @@ class LAMConfig {
|
||||||
array_push($file_array, "types: " . $t_settings[$i] . ": " . $this->typeSettings[$t_settings[$i]] . "\n");
|
array_push($file_array, "types: " . $t_settings[$i] . ": " . $this->typeSettings[$t_settings[$i]] . "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// check if all tool settings were added
|
||||||
|
$tool_settings = array_keys($this->toolSettings);
|
||||||
|
for ($i = 0; $i < sizeof($tool_settings); $i++) {
|
||||||
|
if (!in_array($tool_settings[$i], $mod_saved)) {
|
||||||
|
array_push($file_array, "tools: " . $tool_settings[$i] . ": " . $this->toolSettings[$tool_settings[$i]] . "\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
$file = @fopen($conffile, "w");
|
$file = @fopen($conffile, "w");
|
||||||
if ($file) {
|
if ($file) {
|
||||||
for ($i = 0; $i < sizeof($file_array); $i++) fputs($file, $file_array[$i]);
|
for ($i = 0; $i < sizeof($file_array); $i++) fputs($file, $file_array[$i]);
|
||||||
|
@ -992,6 +1017,27 @@ class LAMConfig {
|
||||||
return $this->typeSettings;
|
return $this->typeSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the tool settings.
|
||||||
|
*
|
||||||
|
* @return array $toolSettings tool settings
|
||||||
|
*/
|
||||||
|
public function getToolSettings() {
|
||||||
|
return $this->toolSettings;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the tool settings.
|
||||||
|
*
|
||||||
|
* @param array $toolSettings tool settings
|
||||||
|
* @return boolean true if ok
|
||||||
|
*/
|
||||||
|
public function setToolSettings($toolSettings) {
|
||||||
|
if (!is_array($toolSettings)) return false;
|
||||||
|
$this->toolSettings = $toolSettings;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the access level for this profile.
|
* Returns the access level for this profile.
|
||||||
*
|
*
|
||||||
|
|
|
@ -133,6 +133,13 @@ interface LAMTool {
|
||||||
*/
|
*/
|
||||||
function isVisible();
|
function isVisible();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if a tool may be hidden by configuration in the LAM server profile.
|
||||||
|
*
|
||||||
|
* @return boolean hideable
|
||||||
|
*/
|
||||||
|
function isHideable();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -117,6 +117,15 @@ class toolFileUpload implements LAMTool {
|
||||||
return (sizeof($_SESSION['config']->get_ActiveTypes()) > 0);
|
return (sizeof($_SESSION['config']->get_ActiveTypes()) > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if a tool may be hidden by configuration in the LAM server profile.
|
||||||
|
*
|
||||||
|
* @return boolean hideable
|
||||||
|
*/
|
||||||
|
function isHideable() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -117,6 +117,15 @@ class toolOUEditor implements LAMTool {
|
||||||
return (sizeof($_SESSION['config']->get_ActiveTypes()) > 0);
|
return (sizeof($_SESSION['config']->get_ActiveTypes()) > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if a tool may be hidden by configuration in the LAM server profile.
|
||||||
|
*
|
||||||
|
* @return boolean hideable
|
||||||
|
*/
|
||||||
|
function isHideable() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -117,6 +117,15 @@ class toolPDFEditor implements LAMTool {
|
||||||
return (sizeof($_SESSION['config']->get_ActiveTypes()) > 0);
|
return (sizeof($_SESSION['config']->get_ActiveTypes()) > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if a tool may be hidden by configuration in the LAM server profile.
|
||||||
|
*
|
||||||
|
* @return boolean hideable
|
||||||
|
*/
|
||||||
|
function isHideable() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -117,6 +117,15 @@ class toolProfileEditor implements LAMTool {
|
||||||
return (sizeof($_SESSION['config']->get_ActiveTypes()) > 0);
|
return (sizeof($_SESSION['config']->get_ActiveTypes()) > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if a tool may be hidden by configuration in the LAM server profile.
|
||||||
|
*
|
||||||
|
* @return boolean hideable
|
||||||
|
*/
|
||||||
|
function isHideable() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -117,6 +117,15 @@ class toolSchemaBrowser implements LAMTool {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if a tool may be hidden by configuration in the LAM server profile.
|
||||||
|
*
|
||||||
|
* @return boolean hideable
|
||||||
|
*/
|
||||||
|
function isHideable() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -117,6 +117,15 @@ class toolServerInformation implements LAMTool {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if a tool may be hidden by configuration in the LAM server profile.
|
||||||
|
*
|
||||||
|
* @return boolean hideable
|
||||||
|
*/
|
||||||
|
function isHideable() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -130,6 +130,15 @@ class toolTests implements LAMTool {
|
||||||
return (sizeof($_SESSION['config']->get_ActiveTypes()) > 0);
|
return (sizeof($_SESSION['config']->get_ActiveTypes()) > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if a tool may be hidden by configuration in the LAM server profile.
|
||||||
|
*
|
||||||
|
* @return boolean hideable
|
||||||
|
*/
|
||||||
|
function isHideable() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -33,9 +33,10 @@ $Id$
|
||||||
|
|
||||||
/** Access to config functions */
|
/** Access to config functions */
|
||||||
include_once("../../lib/config.inc");
|
include_once("../../lib/config.inc");
|
||||||
|
|
||||||
/** access to module settings */
|
/** access to module settings */
|
||||||
include_once("../../lib/modules.inc");
|
include_once("../../lib/modules.inc");
|
||||||
|
/** access to tools */
|
||||||
|
include_once("../../lib/tools.inc");
|
||||||
|
|
||||||
// start session
|
// start session
|
||||||
if (strtolower(session_module_name()) == 'files') {
|
if (strtolower(session_module_name()) == 'files') {
|
||||||
|
@ -338,6 +339,44 @@ if (isLAMProVersion()) {
|
||||||
$container->addElement(new htmlSpacer(null, '10px'), true);
|
$container->addElement(new htmlSpacer(null, '10px'), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tool settings
|
||||||
|
$toolSettings = $conf->getToolSettings();
|
||||||
|
$toolSettingsContent = new htmlTable();
|
||||||
|
$toolsLabel = new htmlOutputText(_('Hidden tools'));
|
||||||
|
$toolsLabel->colspan = 5;
|
||||||
|
$toolSettingsContent->addElement($toolsLabel, true);
|
||||||
|
$tools = getTools();
|
||||||
|
for ($i = 0; $i < sizeof($tools); $i++) {
|
||||||
|
$tool = new $tools[$i]();
|
||||||
|
if ($tool->isHideable()) {
|
||||||
|
$tools[$i] = $tool;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
unset($tools[$i]);
|
||||||
|
$i--;
|
||||||
|
$tools = array_values($tools);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for ($r = 0; $r < (sizeof($tools) / 4); $r++) {
|
||||||
|
for ($c = 0; $c < 4; $c++) {
|
||||||
|
if (!isset($tools[($r * 4) + $c])) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$tool = $tools[($r * 4) + $c];
|
||||||
|
$toolClass = get_class($tool);
|
||||||
|
$selected = false;
|
||||||
|
if (isset($toolSettings['tool_hide_' . $toolClass]) && ($toolSettings['tool_hide_' . $toolClass] === 'true')) {
|
||||||
|
$selected = true;
|
||||||
|
}
|
||||||
|
$toolSettingsContent->addElement(new htmlTableExtendedInputCheckbox('tool_hide_' . $toolClass, $selected, $tool->getName(), null, false));
|
||||||
|
$toolSettingsContent->addElement(new htmlSpacer('10px', null));
|
||||||
|
}
|
||||||
|
$toolSettingsContent->addNewLine();
|
||||||
|
}
|
||||||
|
$toolSettingsFieldset = new htmlFieldset($toolSettingsContent, _("Tool settings"), '../../graphics/bigTools.png');
|
||||||
|
$container->addElement($toolSettingsFieldset, true);
|
||||||
|
$container->addElement(new htmlSpacer(null, '10px'), true);
|
||||||
|
|
||||||
// security setings
|
// security setings
|
||||||
$securitySettingsContent = new htmlTable();
|
$securitySettingsContent = new htmlTable();
|
||||||
// login method
|
// login method
|
||||||
|
@ -499,6 +538,19 @@ function checkInput() {
|
||||||
if (!$conf->set_scriptrights($chmod)) {
|
if (!$conf->set_scriptrights($chmod)) {
|
||||||
$errors[] = array("ERROR", _("Script rights are invalid!"));
|
$errors[] = array("ERROR", _("Script rights are invalid!"));
|
||||||
}
|
}
|
||||||
|
// tool settings
|
||||||
|
$tools = getTools();
|
||||||
|
$toolSettings = array();
|
||||||
|
for ($i = 0; $i < sizeof($tools); $i++) {
|
||||||
|
$toolConfigID = 'tool_hide_' . $tools[$i];
|
||||||
|
if ((isset($_POST[$toolConfigID])) && ($_POST[$toolConfigID] == 'on')) {
|
||||||
|
$toolSettings[$toolConfigID] = 'true';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$toolSettings[$toolConfigID] = 'false';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$conf->setToolSettings($toolSettings);
|
||||||
// check if password was changed
|
// check if password was changed
|
||||||
if (isset($_POST['passwd1']) && ($_POST['passwd1'] != '')) {
|
if (isset($_POST['passwd1']) && ($_POST['passwd1'] != '')) {
|
||||||
if ($_POST['passwd1'] != $_POST['passwd2']) {
|
if ($_POST['passwd1'] != $_POST['passwd2']) {
|
||||||
|
|
|
@ -75,6 +75,7 @@ foreach ($jsFiles as $jsEntry) {
|
||||||
|
|
||||||
// get tool list
|
// get tool list
|
||||||
$availableTools = getTools();
|
$availableTools = getTools();
|
||||||
|
$toolSettings = $_SESSION['config']->getToolSettings();
|
||||||
// sort tools
|
// sort tools
|
||||||
$toSort = array();
|
$toSort = array();
|
||||||
for ($i = 0; $i < sizeof($availableTools); $i++) {
|
for ($i = 0; $i < sizeof($availableTools); $i++) {
|
||||||
|
@ -89,6 +90,10 @@ for ($i = 0; $i < sizeof($availableTools); $i++) {
|
||||||
if (!$myTool->isVisible()) {
|
if (!$myTool->isVisible()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
// check if hidden by config
|
||||||
|
if (isset($toolSettings['tool_hide_' . get_class($myTool)]) && ($toolSettings['tool_hide_' . get_class($myTool)] == 'true')) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$toSort[$availableTools[$i]] = $myTool->getPosition();
|
$toSort[$availableTools[$i]] = $myTool->getPosition();
|
||||||
}
|
}
|
||||||
asort($toSort);
|
asort($toSort);
|
||||||
|
|
Loading…
Reference in New Issue