refactoring
This commit is contained in:
		
							parent
							
								
									5682245739
								
							
						
					
					
						commit
						18547baad2
					
				|  | @ -217,8 +217,6 @@ class PrivacyIDEAProvider implements TwoFactorProvider { | ||||||
| 		if (($status == 'true') && ($value == 'true')) { | 		if (($status == 'true') && ($value == 'true')) { | ||||||
| 			return true; | 			return true; | ||||||
| 		} | 		} | ||||||
| 		$errCode = isset($output->result->error) && isset($output->result->error->code) ? $output->result->error->code : ''; |  | ||||||
| 		$errMessage = isset($output->result->error) && isset($output->result->error->message) ? $output->result->error->message : ''; |  | ||||||
| 		logNewMessage(LOG_DEBUG, "Unable to verify token: " . print_r($output, true)); | 		logNewMessage(LOG_DEBUG, "Unable to verify token: " . print_r($output, true)); | ||||||
| 		return false; | 		return false; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ | ||||||
| 
 | 
 | ||||||
|   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) |   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) | ||||||
|   Copyright (C) 2003 - 2006  Tilo Lutz |   Copyright (C) 2003 - 2006  Tilo Lutz | ||||||
|                 2009 - 2018  Roland Gruber |                 2009 - 2019  Roland Gruber | ||||||
| 
 | 
 | ||||||
|   This program is free software; you can redistribute it and/or modify |   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 |   it under the terms of the GNU General Public License as published by | ||||||
|  | @ -341,7 +341,6 @@ function generateRandomPassword() { | ||||||
| 	if ($length < 12) { | 	if ($length < 12) { | ||||||
| 		$length = 12; | 		$length = 12; | ||||||
| 	} | 	} | ||||||
| 	$isOk = false; |  | ||||||
| 	for ($x = 0; $x < 10000; $x++) { | 	for ($x = 0; $x < 10000; $x++) { | ||||||
| 		$password = ''; | 		$password = ''; | ||||||
| 		for ($i = 0; $i < $length; $i++) { | 		for ($i = 0; $i < $length; $i++) { | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ use \LAMException; | ||||||
| /* | /* | ||||||
| 
 | 
 | ||||||
|  This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) |  This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) | ||||||
|  Copyright (C) 2018  Roland Gruber |  Copyright (C) 2018 - 2019  Roland Gruber | ||||||
| 
 | 
 | ||||||
|  This program is free software; you can redistribute it and/or modify |  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 |  it under the terms of the GNU General Public License as published by | ||||||
|  | @ -109,8 +109,7 @@ class Importer { | ||||||
| 	 */ | 	 */ | ||||||
| 	public function getTasks($lines) { | 	public function getTasks($lines) { | ||||||
| 		$chunks = $this->extractImportChunks($lines); | 		$chunks = $this->extractImportChunks($lines); | ||||||
| 		$tasks = $this->convertToTasks($chunks); | 		return $this->convertToTasks($chunks); | ||||||
| 		return $tasks; |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/** | 	/** | ||||||
|  | @ -297,7 +296,6 @@ class Importer { | ||||||
| 			elseif ($type !== 'modify') { | 			elseif ($type !== 'modify') { | ||||||
| 				throw new LAMException(_('Invalid data'), htmlspecialchars($dn) . ' - changeType: ' . htmlspecialchars($type)); | 				throw new LAMException(_('Invalid data'), htmlspecialchars($dn) . ' - changeType: ' . htmlspecialchars($type)); | ||||||
| 			} | 			} | ||||||
| 			$changes = array(); |  | ||||||
| 			$subtasks = array(); | 			$subtasks = array(); | ||||||
| 			$currentLines = array(); | 			$currentLines = array(); | ||||||
| 			$linesCount = sizeof($entry); | 			$linesCount = sizeof($entry); | ||||||
|  | @ -337,7 +335,7 @@ class Importer { | ||||||
| 		if (($delOldRdnData[Importer::KEY] !== 'deleteoldrdn') || !in_array($delOldRdnData[Importer::VALUE], array('0', '1'), true)) { | 		if (($delOldRdnData[Importer::KEY] !== 'deleteoldrdn') || !in_array($delOldRdnData[Importer::VALUE], array('0', '1'), true)) { | ||||||
| 			throw new LAMException(_('Invalid data'), htmlspecialchars($dn) . '<br>' . $entry[1]); | 			throw new LAMException(_('Invalid data'), htmlspecialchars($dn) . '<br>' . $entry[1]); | ||||||
| 		} | 		} | ||||||
| 		$delOldRdn = ($delOldRdnData[Importer::VALUE] === '0') ? false : true; | 		$delOldRdn = ($delOldRdnData[Importer::VALUE] !== '0'); | ||||||
| 		return new RenameEntryTask($dn, $newRdn, $delOldRdn); | 		return new RenameEntryTask($dn, $newRdn, $delOldRdn); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ use \LAM\TYPES\TypeManager; | ||||||
| /* | /* | ||||||
| 
 | 
 | ||||||
|   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) |   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) | ||||||
|   Copyright (C) 2003 - 2018  Roland Gruber |   Copyright (C) 2003 - 2019  Roland Gruber | ||||||
| 
 | 
 | ||||||
|   This program is free software; you can redistribute it and/or modify |   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 |   it under the terms of the GNU General Public License as published by | ||||||
|  | @ -139,8 +139,7 @@ function get_ldap_filter($typeId) { | ||||||
| 		$finalFilter = "(&" . implode("", $filters['and']) . ")"; | 		$finalFilter = "(&" . implode("", $filters['and']) . ")"; | ||||||
| 	} | 	} | ||||||
| 	$loginData = $_SESSION['ldap']->decrypt_login(); | 	$loginData = $_SESSION['ldap']->decrypt_login(); | ||||||
| 	$finalFilter = str_replace('@@LOGIN_DN@@', $loginData[0], $finalFilter); | 	return str_replace('@@LOGIN_DN@@', $loginData[0], $finalFilter); | ||||||
| 	return $finalFilter; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  | @ -190,7 +189,9 @@ function getRDNAttributes($typeId, $selectedModules=null) { | ||||||
| 		if (!in_array($attrs_normal[$i], $return)) $return[] = $attrs_normal[$i]; | 		if (!in_array($attrs_normal[$i], $return)) $return[] = $attrs_normal[$i]; | ||||||
| 	} | 	} | ||||||
| 	for ($i = 0; $i < sizeof($attrs_low); $i++) { | 	for ($i = 0; $i < sizeof($attrs_low); $i++) { | ||||||
| 		if (!in_array($attrs_low[$i], $return)) $return[] = $attrs_low[$i]; | 		if (!in_array($attrs_low[$i], $return)) { | ||||||
|  | 			$return[] = $attrs_low[$i]; | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| 	return $return; | 	return $return; | ||||||
| } | } | ||||||
|  | @ -252,8 +253,10 @@ function check_module_depends($selected, $deps) { | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	if (sizeof($ret) > 0) return $ret; | 	if (sizeof($ret) > 0) { | ||||||
| 	else return false; | 		return $ret; | ||||||
|  | 	} | ||||||
|  | 	return false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  | @ -273,8 +276,10 @@ function check_module_conflicts($selected, $deps) { | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	if (sizeof($ret) > 0) return $ret; | 	if (sizeof($ret) > 0) { | ||||||
| 	else return false; | 		return $ret; | ||||||
|  | 	} | ||||||
|  | 	return false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  | @ -289,7 +294,7 @@ function getAvailableModules($scope, $mustSupportAdminInterface = false) { | ||||||
| 	$dir = dir($dirname); | 	$dir = dir($dirname); | ||||||
| 	$return = array(); | 	$return = array(); | ||||||
| 	// get module names.
 | 	// get module names.
 | ||||||
| 	while ($entry = $dir->read()) | 	while ($entry = $dir->read()) { | ||||||
| 		if ((substr($entry, strlen($entry) - 4, 4) == '.inc') && is_file($dirname . '/'.$entry)) { | 		if ((substr($entry, strlen($entry) - 4, 4) == '.inc') && is_file($dirname . '/'.$entry)) { | ||||||
| 			$entry = substr($entry, 0, strpos($entry, '.')); | 			$entry = substr($entry, 0, strpos($entry, '.')); | ||||||
| 			$temp = moduleCache::getModule($entry, $scope); | 			$temp = moduleCache::getModule($entry, $scope); | ||||||
|  | @ -300,6 +305,7 @@ function getAvailableModules($scope, $mustSupportAdminInterface = false) { | ||||||
| 				$return[] = $entry; | 				$return[] = $entry; | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  | 	} | ||||||
| 	return $return; | 	return $return; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -389,7 +395,9 @@ function getHelp($module,$helpID,$scope='') { | ||||||
| 	global $helpArray; | 	global $helpArray; | ||||||
| 	if (!isset($module) || ($module == '') || ($module == 'main')) { | 	if (!isset($module) || ($module == '') || ($module == 'main')) { | ||||||
| 		$helpPath = "../help/help.inc"; | 		$helpPath = "../help/help.inc"; | ||||||
| 		if (is_file("../../help/help.inc")) $helpPath = "../../help/help.inc"; | 		if (is_file("../../help/help.inc")) { | ||||||
|  | 			$helpPath = "../../help/help.inc"; | ||||||
|  | 		} | ||||||
| 		if (!isset($helpArray)) { | 		if (!isset($helpArray)) { | ||||||
| 			include_once($helpPath); | 			include_once($helpPath); | ||||||
| 		} | 		} | ||||||
|  | @ -512,7 +520,9 @@ function buildUploadAccounts($type, $data, $ids, $selectedModules, htmlResponsiv | ||||||
| 				break; | 				break; | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		if ($newRound) continue; | 		if ($newRound) { | ||||||
|  | 			continue; | ||||||
|  | 		} | ||||||
| 		// this point should never be reached, LAM was unable to find a correct module order
 | 		// this point should never be reached, LAM was unable to find a correct module order
 | ||||||
| 		$container->add(new htmlStatusMessage("ERROR", "Internal Error: Unable to find correct module order."), 12); | 		$container->add(new htmlStatusMessage("ERROR", "Internal Error: Unable to find correct module order."), 12); | ||||||
| 		return false; | 		return false; | ||||||
|  | @ -701,7 +711,9 @@ function lamCompareDescriptiveOptions(&$a, &$b) { | ||||||
|  */ |  */ | ||||||
| function printHelpLink($entry, $number, $module = '', $scope = '', $classes = array()) { | function printHelpLink($entry, $number, $module = '', $scope = '', $classes = array()) { | ||||||
| 	$helpPath = "../"; | 	$helpPath = "../"; | ||||||
| 	if (is_file("./help.php")) $helpPath = ""; | 	if (is_file("./help.php")) { | ||||||
|  | 		$helpPath = ""; | ||||||
|  | 	} | ||||||
| 	$title = $entry['Headline']; | 	$title = $entry['Headline']; | ||||||
| 	$message = $entry['Text']; | 	$message = $entry['Text']; | ||||||
| 	if (isset($entry['attr'])) { | 	if (isset($entry['attr'])) { | ||||||
|  | @ -736,8 +748,12 @@ class accountContainer { | ||||||
| 	* @param integer $randomID random ID to avoid parallel editing (default: null) | 	* @param integer $randomID random ID to avoid parallel editing (default: null) | ||||||
| 	*/ | 	*/ | ||||||
| 	function __construct($type, $base, $randomID = null) { | 	function __construct($type, $base, $randomID = null) { | ||||||
| 		if (!($type instanceof ConfiguredType)) trigger_error('Argument of accountContainer must be ConfiguredType.', E_USER_ERROR); | 		if (!($type instanceof ConfiguredType)) { | ||||||
| 		if (!is_string($base)) trigger_error('Argument of accountContainer must be string.', E_USER_ERROR); | 			trigger_error('Argument of accountContainer must be ConfiguredType.', E_USER_ERROR); | ||||||
|  | 		} | ||||||
|  | 		if (!is_string($base)) { | ||||||
|  | 			trigger_error('Argument of accountContainer must be string.', E_USER_ERROR); | ||||||
|  | 		} | ||||||
| 		$this->type = $type; | 		$this->type = $type; | ||||||
| 		$this->base = $base; | 		$this->base = $base; | ||||||
| 		// Set startpage
 | 		// Set startpage
 | ||||||
|  | @ -855,13 +871,14 @@ class accountContainer { | ||||||
| 		} | 		} | ||||||
| 		$oldPage = $this->current_page; | 		$oldPage = $this->current_page; | ||||||
| 		$oldSubpage = $this->subpage; | 		$oldSubpage = $this->subpage; | ||||||
| 		$post = $_POST; |  | ||||||
| 		$result = array(); | 		$result = array(); | ||||||
| 		$stopProcessing = false; // when set to true, no module options are displayed
 | 		$stopProcessing = false; // when set to true, no module options are displayed
 | ||||||
| 		$errorsOccured = false; | 		$errorsOccured = false; | ||||||
| 		$typeObject = $this->type->getBaseType(); | 		$typeObject = $this->type->getBaseType(); | ||||||
| 		$profileLoaded = $this->loadProfileIfRequested(); | 		$profileLoaded = $this->loadProfileIfRequested(); | ||||||
| 		if ($this->subpage=='') $this->subpage='attributes'; | 		if ($this->subpage == '') { | ||||||
|  | 			$this->subpage='attributes'; | ||||||
|  | 		} | ||||||
| 		if (isset($_POST['accountContainerReset'])) { | 		if (isset($_POST['accountContainerReset'])) { | ||||||
| 			$result = $this->load_account($this->dn_orig); | 			$result = $this->load_account($this->dn_orig); | ||||||
| 		} | 		} | ||||||
|  | @ -1225,7 +1242,7 @@ class accountContainer { | ||||||
| 		$return['forcePasswordChange'] = $forcePasswordChange; | 		$return['forcePasswordChange'] = $forcePasswordChange; | ||||||
| 		if ($return['errorsOccured'] == 'false') { | 		if ($return['errorsOccured'] == 'false') { | ||||||
| 			// set new password
 | 			// set new password
 | ||||||
| 			foreach ($this->module as $name => $module) { | 			foreach ($this->module as $module) { | ||||||
| 				if ($module instanceof passwordService) { | 				if ($module instanceof passwordService) { | ||||||
| 					$messages = $module->passwordChangeRequested($password1, $modules, $forcePasswordChange); | 					$messages = $module->passwordChangeRequested($password1, $modules, $forcePasswordChange); | ||||||
| 					for ($m = 0; $m < sizeof($messages); $m++) { | 					for ($m = 0; $m < sizeof($messages); $m++) { | ||||||
|  | @ -1334,7 +1351,7 @@ class accountContainer { | ||||||
| 	 * @return boolean show or hide button | 	 * @return boolean show or hide button | ||||||
| 	 */ | 	 */ | ||||||
| 	private function showSetPasswordButton() { | 	private function showSetPasswordButton() { | ||||||
| 		foreach ($this->module as $name => $module) { | 		foreach ($this->module as $module) { | ||||||
| 			if (($module instanceof passwordService) && $module->managesPasswordAttributes()) { | 			if (($module instanceof passwordService) && $module->managesPasswordAttributes()) { | ||||||
| 				return true; | 				return true; | ||||||
| 			} | 			} | ||||||
|  | @ -1442,11 +1459,12 @@ class accountContainer { | ||||||
| 			$this->lastLoadedProfile = $_POST['accountContainerSelectLoadProfile']; | 			$this->lastLoadedProfile = $_POST['accountContainerSelectLoadProfile']; | ||||||
| 			// pass profile to each module
 | 			// pass profile to each module
 | ||||||
| 			$modules = array_keys($this->module); | 			$modules = array_keys($this->module); | ||||||
| 			foreach ($modules as $module) $this->module[$module]->load_profile($profile); | 			foreach ($modules as $module) { | ||||||
| 			if (isset($profile['ldap_rdn'][0])) { | 				$this->module[$module]->load_profile($profile); | ||||||
| 				if (in_array($profile['ldap_rdn'][0], getRDNAttributes($this->type->getId()))) { | 			} | ||||||
| 					$this->rdn = $profile['ldap_rdn'][0]; | 			if (isset($profile['ldap_rdn'][0]) | ||||||
| 				} | 					&& in_array($profile['ldap_rdn'][0], getRDNAttributes($this->type->getId()))) { | ||||||
|  | 				$this->rdn = $profile['ldap_rdn'][0]; | ||||||
| 			} | 			} | ||||||
| 			if (isset($profile['ldap_suffix'][0]) && ($profile['ldap_suffix'][0] != '-')) { | 			if (isset($profile['ldap_suffix'][0]) && ($profile['ldap_suffix'][0] != '-')) { | ||||||
| 				$this->dnSuffix = $profile['ldap_suffix'][0]; | 				$this->dnSuffix = $profile['ldap_suffix'][0]; | ||||||
|  | @ -1468,7 +1486,9 @@ class accountContainer { | ||||||
| 			$buttonStatus = $this->module[$this->order[$i]]->getButtonStatus(); | 			$buttonStatus = $this->module[$this->order[$i]]->getButtonStatus(); | ||||||
| 			$alias = $this->module[$this->order[$i]]->get_alias(); | 			$alias = $this->module[$this->order[$i]]->get_alias(); | ||||||
| 			// skip hidden buttons
 | 			// skip hidden buttons
 | ||||||
| 			if ($buttonStatus == 'hidden') continue; | 			if ($buttonStatus == 'hidden') { | ||||||
|  | 				continue; | ||||||
|  | 			} | ||||||
| 			$buttonImage = $this->module[$this->order[$i]]->getIcon(); | 			$buttonImage = $this->module[$this->order[$i]]->getIcon(); | ||||||
| 			$activatedClass = ''; | 			$activatedClass = ''; | ||||||
| 			if ($this->order[$this->current_page] == $this->order[$i]) { | 			if ($this->order[$this->current_page] == $this->order[$i]) { | ||||||
|  | @ -1479,7 +1499,9 @@ class accountContainer { | ||||||
| 			$buttonStyle = 'background-color:transparent;;border:0px solid;min-width: 200px;'; | 			$buttonStyle = 'background-color:transparent;;border:0px solid;min-width: 200px;'; | ||||||
| 			echo "<button style=\"" . $buttonStyle . "\" name=\"form_main_".$this->order[$i]."\""; | 			echo "<button style=\"" . $buttonStyle . "\" name=\"form_main_".$this->order[$i]."\""; | ||||||
| 			echo " tabindex=$x"; | 			echo " tabindex=$x"; | ||||||
| 			if ($buttonStatus == 'disabled') echo " disabled"; | 			if ($buttonStatus == 'disabled') { | ||||||
|  | 				echo " disabled"; | ||||||
|  | 			} | ||||||
| 			echo ' onmouseover="jQuery(this).addClass(\'tabs-hover\');" onmouseout="jQuery(this).removeClass(\'tabs-hover\');">'; | 			echo ' onmouseover="jQuery(this).addClass(\'tabs-hover\');" onmouseout="jQuery(this).removeClass(\'tabs-hover\');">'; | ||||||
| 			if ($buttonImage != null) { | 			if ($buttonImage != null) { | ||||||
| 				if (!(strpos($buttonImage, 'http') === 0) && !(strpos($buttonImage, '/') === 0)) { | 				if (!(strpos($buttonImage, 'http') === 0) && !(strpos($buttonImage, '/') === 0)) { | ||||||
|  | @ -1523,10 +1545,10 @@ class accountContainer { | ||||||
| 			if (isset($orig[$name]) && is_array($orig[$name])) { | 			if (isset($orig[$name]) && is_array($orig[$name])) { | ||||||
| 				foreach ($orig[$name] as $j => $value) { | 				foreach ($orig[$name] as $j => $value) { | ||||||
| 					if (is_array($attributes[$name])) { | 					if (is_array($attributes[$name])) { | ||||||
| 						if (!in_array($value, $attributes[$name], true)) { | 						if (!in_array($value, $attributes[$name], true) | ||||||
| 							if (($value !== null) && ($value !== '')) { | 								&& ($value !== null) | ||||||
| 								$torem[$name][] = $value; | 								&& ($value !== '')) { | ||||||
| 							} | 							$torem[$name][] = $value; | ||||||
| 						} | 						} | ||||||
| 					} | 					} | ||||||
| 					elseif (($value !== null) && ($value !== '')) { | 					elseif (($value !== null) && ($value !== '')) { | ||||||
|  | @ -1538,10 +1560,10 @@ class accountContainer { | ||||||
| 			if (isset($attributes[$name]) && is_array($attributes[$name])) { | 			if (isset($attributes[$name]) && is_array($attributes[$name])) { | ||||||
| 				foreach ($attributes[$name] as $j => $value) { | 				foreach ($attributes[$name] as $j => $value) { | ||||||
| 					if (isset($orig[$name]) && is_array($orig[$name])) { | 					if (isset($orig[$name]) && is_array($orig[$name])) { | ||||||
| 						if (!in_array($value, $orig[$name], true)) | 						if (!in_array($value, $orig[$name], true) | ||||||
| 							if (($value !== null) && ($value !== '')) { | 								&& ($value !== null) | ||||||
| 								$toadd[$name][] = $value; | 								&& ($value !== '')) | ||||||
| 							} | 							$toadd[$name][] = $value; | ||||||
| 					} | 					} | ||||||
| 					elseif (($value !== null) && ($value !== '')) { | 					elseif (($value !== null) && ($value !== '')) { | ||||||
| 						$toadd[$name][] = $value; | 						$toadd[$name][] = $value; | ||||||
|  | @ -1663,7 +1685,9 @@ class accountContainer { | ||||||
| 	 * @return array fixed attributes | 	 * @return array fixed attributes | ||||||
| 	 */ | 	 */ | ||||||
| 	function fixLDAPAttributes($attributes, $modules) { | 	function fixLDAPAttributes($attributes, $modules) { | ||||||
| 		if (!is_array($attributes)) return $attributes; | 		if (!is_array($attributes)) { | ||||||
|  | 			return $attributes; | ||||||
|  | 		} | ||||||
| 		$keys = array_keys($attributes); | 		$keys = array_keys($attributes); | ||||||
| 		// get correct object class names, aliases and attributes
 | 		// get correct object class names, aliases and attributes
 | ||||||
| 		$objectClasses = array(); | 		$objectClasses = array(); | ||||||
|  | @ -1800,10 +1824,14 @@ class accountContainer { | ||||||
| 		foreach ($module as $singlemodule) { | 		foreach ($module as $singlemodule) { | ||||||
| 			// load changes
 | 			// load changes
 | ||||||
| 			$temp = $this->module[$singlemodule]->save_attributes(); | 			$temp = $this->module[$singlemodule]->save_attributes(); | ||||||
| 			if (!is_array($temp)) $temp = array(); | 			if (!is_array($temp)) { | ||||||
|  | 				$temp = array(); | ||||||
|  | 			} | ||||||
| 			// merge changes
 | 			// merge changes
 | ||||||
| 			$DNs = array_keys($temp); | 			$DNs = array_keys($temp); | ||||||
| 			if (is_array($temp)) $attributes = array_merge_recursive($temp, $attributes); | 			if (is_array($temp)) { | ||||||
|  | 				$attributes = array_merge_recursive($temp, $attributes); | ||||||
|  | 			} | ||||||
| 			for ($i = 0; $i < count($DNs); $i++) { | 			for ($i = 0; $i < count($DNs); $i++) { | ||||||
| 				$ops = array_keys($temp[$DNs[$i]]); | 				$ops = array_keys($temp[$DNs[$i]]); | ||||||
| 				for ($j=0; $j<count($ops); $j++) { | 				for ($j=0; $j<count($ops); $j++) { | ||||||
|  | @ -2075,8 +2103,7 @@ class accountContainer { | ||||||
| 		if (isset($this->finalDN)) { | 		if (isset($this->finalDN)) { | ||||||
| 			$dn = $this->finalDN; | 			$dn = $this->finalDN; | ||||||
| 		} | 		} | ||||||
| 		$return = array_merge($return,array('main_dn' => array(new \LAM\PDF\PDFLabelValue(_('DN'), $dn)))); | 		return array_merge($return,array('main_dn' => array(new \LAM\PDF\PDFLabelValue(_('DN'), $dn)))); | ||||||
| 		return $return; |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/** | 	/** | ||||||
|  | @ -2150,7 +2177,9 @@ class accountContainer { | ||||||
| 		} | 		} | ||||||
| 		// add modules which could not be sorted (e.g. because of cyclic dependencies)
 | 		// add modules which could not be sorted (e.g. because of cyclic dependencies)
 | ||||||
| 		if (sizeof($depModules) > 0) { | 		if (sizeof($depModules) > 0) { | ||||||
| 			for ($i = 0; $i < sizeof($depModules); $i++) $order[] = $depModules[$i]; | 			for ($i = 0; $i < sizeof($depModules); $i++) { | ||||||
|  | 				$order[] = $depModules[$i]; | ||||||
|  | 			} | ||||||
| 		} | 		} | ||||||
| 		// move disabled modules to end
 | 		// move disabled modules to end
 | ||||||
| 		$activeModules = array(); | 		$activeModules = array(); | ||||||
|  | @ -2177,9 +2206,10 @@ class accountContainer { | ||||||
| 	 * @return String RDN | 	 * @return String RDN | ||||||
| 	 */ | 	 */ | ||||||
| 	function getRDN($dn) { | 	function getRDN($dn) { | ||||||
| 		if (($dn == "") || ($dn == null)) return ""; | 		if (($dn == "") || ($dn == null)) { | ||||||
| 		$rdn = substr($dn, 0, strpos($dn, ",")); | 			return ""; | ||||||
| 		return $rdn; | 		} | ||||||
|  | 		return substr($dn, 0, strpos($dn, ",")); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/** | 	/** | ||||||
|  | @ -2189,9 +2219,10 @@ class accountContainer { | ||||||
| 	 * @return String DN | 	 * @return String DN | ||||||
| 	 */ | 	 */ | ||||||
| 	function getParentDN($dn) { | 	function getParentDN($dn) { | ||||||
| 		if (($dn == "") || ($dn == null)) return ""; | 		if (($dn == "") || ($dn == null)) { | ||||||
| 		$parent = substr($dn, strpos($dn, ",") + 1); | 			return ""; | ||||||
| 		return $parent; | 		} | ||||||
|  | 		return substr($dn, strpos($dn, ",") + 1); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/** | 	/** | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ use \LAM\PDF\PDFTableRow; | ||||||
| 
 | 
 | ||||||
|   This code is part of LDAP Account Manager (http://www.sourceforge.net/projects/lam) |   This code is part of LDAP Account Manager (http://www.sourceforge.net/projects/lam) | ||||||
|   Copyright (C) 2009 - 2012  Pavel Pozdniak |   Copyright (C) 2009 - 2012  Pavel Pozdniak | ||||||
|                 2009 - 2018  Roland Gruber |                 2009 - 2019  Roland Gruber | ||||||
| 
 | 
 | ||||||
|   This program is free software; you can redistribute it and/or modify |   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 |   it under the terms of the GNU General Public License as published by | ||||||
|  | @ -345,7 +345,8 @@ class asteriskExtension extends baseModule { | ||||||
|             $displayEntrNum++; |             $displayEntrNum++; | ||||||
|             $this->addRuleFlag = false; |             $this->addRuleFlag = false; | ||||||
|         } |         } | ||||||
|         $hidenInput = new htmlHiddenInput("extension_rows", $displayEntrNum); //the size of found rows plus 1 for new one;
 |         // the size of found rows plus 1 for new one
 | ||||||
|  |         $hidenInput = new htmlHiddenInput("extension_rows", $displayEntrNum); | ||||||
|         $renderContainer->addElement($hidenInput, true); |         $renderContainer->addElement($hidenInput, true); | ||||||
| 
 | 
 | ||||||
|         $renderContainer->addElement(new htmlButton("add_rule", _('Add another rule')), true); |         $renderContainer->addElement(new htmlButton("add_rule", _('Add another rule')), true); | ||||||
|  | @ -509,8 +510,9 @@ class asteriskExtension extends baseModule { | ||||||
|                 $this->searchOwnersInTreeSuffix = false; |                 $this->searchOwnersInTreeSuffix = false; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         if (!isset($this->extensionOwners)) |         if (!isset($this->extensionOwners)) { | ||||||
|             $this->extensionOwners = array(); |             $this->extensionOwners = array(); | ||||||
|  |         } | ||||||
|         if (isset($_POST['addusers']) && isset($_POST['addusers_button'])) { // Add users to list
 |         if (isset($_POST['addusers']) && isset($_POST['addusers_button'])) { // Add users to list
 | ||||||
|             // Add new user
 |             // Add new user
 | ||||||
|             $this->extensionOwners = @array_merge($this->extensionOwners, $_POST['addusers']); |             $this->extensionOwners = @array_merge($this->extensionOwners, $_POST['addusers']); | ||||||
|  | @ -662,8 +664,7 @@ class asteriskExtension extends baseModule { | ||||||
|      */ |      */ | ||||||
|     function getDefaultExtensionOwner(){ |     function getDefaultExtensionOwner(){ | ||||||
|         $credentials = $_SESSION['ldap']->decrypt_login(); |         $credentials = $_SESSION['ldap']->decrypt_login(); | ||||||
| 		$login = $credentials[0]; |         return $credentials[0]; | ||||||
|         return $login; |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|  | @ -691,10 +692,9 @@ class asteriskExtension extends baseModule { | ||||||
|         $extRow["objectclass"][2] = "AsteriskExtension"; |         $extRow["objectclass"][2] = "AsteriskExtension"; | ||||||
| 
 | 
 | ||||||
|         $extRow['astapplication'][0] = $_POST['AstApplication_' . $entryCounter]; |         $extRow['astapplication'][0] = $_POST['AstApplication_' . $entryCounter]; | ||||||
|         if (!isset($_POST['AstApplication_' . $entryCounter]) || $_POST['AstApplication_' . $entryCounter] == '') { |         if ((!isset($_POST['AstApplication_' . $entryCounter]) || $_POST['AstApplication_' . $entryCounter] == '') | ||||||
|             if ($entryCounter < ($_POST['extension_rows'] - 1)) { |         		&& ($entryCounter < ($_POST['extension_rows'] - 1))) { | ||||||
|                 $errors[] = $this->messages['AstApplication'][0]; | 			$errors[] = $this->messages['AstApplication'][0]; | ||||||
|             } |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         $extRow['astpriority'][0] = $extensionPriorityCntr; |         $extRow['astpriority'][0] = $extensionPriorityCntr; | ||||||
|  | @ -707,10 +707,9 @@ class asteriskExtension extends baseModule { | ||||||
| 
 | 
 | ||||||
|         //Fille the member filed
 |         //Fille the member filed
 | ||||||
|         $extRow['member'] = $this->extensionOwners; |         $extRow['member'] = $this->extensionOwners; | ||||||
|         if (!isset($extRow['member']) || count($extRow['member']) == 0) { |         if ((!isset($extRow['member']) || count($extRow['member']) == 0) | ||||||
|             if (!isset($_POST['form_subpage_' . get_class($this) . '_user_open'])) { |         		&& !isset($_POST['form_subpage_' . get_class($this) . '_user_open'])) { | ||||||
|                 $errors[] = $this->messages['member'][0]; | 			$errors[] = $this->messages['member'][0]; | ||||||
|             } |  | ||||||
|         } |         } | ||||||
|         return $errors; |         return $errors; | ||||||
|     } |     } | ||||||
|  | @ -800,8 +799,6 @@ class asteriskExtension extends baseModule { | ||||||
| 	 * @see baseModule::get_pdfEntries() | 	 * @see baseModule::get_pdfEntries() | ||||||
| 	 */ | 	 */ | ||||||
|     function get_pdfEntries($pdfKeys, $typeId) { |     function get_pdfEntries($pdfKeys, $typeId) { | ||||||
|     	$a = $this->attributes; |  | ||||||
|     	$o = $this->orig; |  | ||||||
|         $return = array(); |         $return = array(); | ||||||
|         $extName = ''; |         $extName = ''; | ||||||
|         if (isset($this->attributes['AstExtension'][0])) { |         if (isset($this->attributes['AstExtension'][0])) { | ||||||
|  | @ -849,10 +846,12 @@ class asteriskExtension extends baseModule { | ||||||
|         $extensionNamePriorityMap = array(); |         $extensionNamePriorityMap = array(); | ||||||
|         for ($i = 0; $i < sizeof($rawAccounts); $i++) { |         for ($i = 0; $i < sizeof($rawAccounts); $i++) { | ||||||
|             // add object class
 |             // add object class
 | ||||||
|             if (!in_array("AsteriskExtension", $partialAccounts[$i]['objectClass'])) |             if (!in_array("AsteriskExtension", $partialAccounts[$i]['objectClass'])) { | ||||||
|                 $partialAccounts[$i]['objectClass'][] = "AsteriskExtension"; |                 $partialAccounts[$i]['objectClass'][] = "AsteriskExtension"; | ||||||
|             if (!in_array("groupOfNames", $partialAccounts[$i]['objectClass'])) |             } | ||||||
|  |             if (!in_array("groupOfNames", $partialAccounts[$i]['objectClass'])) { | ||||||
|                 $partialAccounts[$i]['objectClass'][] = "groupOfNames"; |                 $partialAccounts[$i]['objectClass'][] = "groupOfNames"; | ||||||
|  |             } | ||||||
|             // attributes
 |             // attributes
 | ||||||
|             $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskExtension_AstExtension', 'AstExtension'); |             $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'asteriskExtension_AstExtension', 'AstExtension'); | ||||||
| 
 | 
 | ||||||
|  | @ -891,7 +890,6 @@ class asteriskExtension extends baseModule { | ||||||
|      */ |      */ | ||||||
|     function moveExtentionToNewSuffix($rowOrig) { |     function moveExtentionToNewSuffix($rowOrig) { | ||||||
|         if ($this->isMoveToNewSuffix()) { |         if ($this->isMoveToNewSuffix()) { | ||||||
|             $orig_suffix = extractDNSuffix($this->getAccountContainer()->dn_orig); |  | ||||||
|             $oldDN = "cn=" . $rowOrig["cn"][0] . "," . extractDNSuffix($this->getAccountContainer()->dn_orig); |             $oldDN = "cn=" . $rowOrig["cn"][0] . "," . extractDNSuffix($this->getAccountContainer()->dn_orig); | ||||||
|             $newRDN = "cn=" . $rowOrig["cn"][0]; |             $newRDN = "cn=" . $rowOrig["cn"][0]; | ||||||
|             $is_rename_success = false; |             $is_rename_success = false; | ||||||
|  | @ -924,7 +922,6 @@ class asteriskExtension extends baseModule { | ||||||
| 	* @return array list of modifications | 	* @return array list of modifications | ||||||
| 	*/ | 	*/ | ||||||
| 	function save_attributes() { | 	function save_attributes() { | ||||||
| 	$errors = array(); |  | ||||||
|         $this->extensionRows = $this->array_sort($this->extensionRows, 'astpriority'); |         $this->extensionRows = $this->array_sort($this->extensionRows, 'astpriority'); | ||||||
| 
 | 
 | ||||||
|         //Modify existent config roes if necessary
 |         //Modify existent config roes if necessary
 | ||||||
|  | @ -949,7 +946,8 @@ class asteriskExtension extends baseModule { | ||||||
|                     $diffVals = array_map("unserialize", $diffValsSerialysed); |                     $diffVals = array_map("unserialize", $diffValsSerialysed); | ||||||
|                     if($row["cn"][0] ==  $rowOrig["cn"][0]){ |                     if($row["cn"][0] ==  $rowOrig["cn"][0]){ | ||||||
|                         ldap_mod_replace($_SESSION['ldap']->server(), "cn=" . $row["cn"][0] . "," . $this->getAccountContainer()->dnSuffix, $diffVals); |                         ldap_mod_replace($_SESSION['ldap']->server(), "cn=" . $row["cn"][0] . "," . $this->getAccountContainer()->dnSuffix, $diffVals); | ||||||
|                     }else{ |                     } | ||||||
|  |                     else { | ||||||
|                         $origDN = "cn=" . $rowOrig["cn"][0] . "," . $this->getAccountContainer()->dnSuffix; |                         $origDN = "cn=" . $rowOrig["cn"][0] . "," . $this->getAccountContainer()->dnSuffix; | ||||||
|                         $newRDN = "cn=" . $row["cn"][0]; |                         $newRDN = "cn=" . $row["cn"][0]; | ||||||
| 
 | 
 | ||||||
|  | @ -971,9 +969,7 @@ class asteriskExtension extends baseModule { | ||||||
|         $this->getAccountContainer()->dn_orig = "cn=" .  $this->extensionRows[0]['cn'][0] . "," . $this->getAccountContainer()->dnSuffix; |         $this->getAccountContainer()->dn_orig = "cn=" .  $this->extensionRows[0]['cn'][0] . "," . $this->getAccountContainer()->dnSuffix; | ||||||
|         $this->getAccountContainer()->finalDN = "cn=" .  $this->extensionRows[0]['cn'][0] . "," . $this->getAccountContainer()->dnSuffix; |         $this->getAccountContainer()->finalDN = "cn=" .  $this->extensionRows[0]['cn'][0] . "," . $this->getAccountContainer()->dnSuffix; | ||||||
| 
 | 
 | ||||||
|         $retun_obj = $this->getAccountContainer()->save_module_attributes($this->orig, $this->orig); |         return $this->getAccountContainer()->save_module_attributes($this->orig, $this->orig); | ||||||
| 
 |  | ||||||
|         return $retun_obj; |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ use \LAM\TYPES\TypeManager; | ||||||
| /* | /* | ||||||
|  * This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) |  * This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) | ||||||
|  * Copyright (C) 2017 Lars Althof |  * Copyright (C) 2017 Lars Althof | ||||||
|  *               2017 Roland Gruber |  *               2017 - 2019 Roland Gruber | ||||||
|  * |  * | ||||||
|  * This program is free software; you can redistribute it and/or modify |  * 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 |  * it under the terms of the GNU General Public License as published by | ||||||
|  | @ -559,10 +559,10 @@ class courierMailAccount extends baseModule { | ||||||
| 		// profile mappings in meta data
 | 		// profile mappings in meta data
 | ||||||
| 		parent::load_profile($profile); | 		parent::load_profile($profile); | ||||||
| 		// add extension
 | 		// add extension
 | ||||||
| 		if (isset($profile['courierMailAccount_addExt'][0]) && ($profile['courierMailAccount_addExt'][0] == "true")) { | 		if (isset($profile['courierMailAccount_addExt'][0]) | ||||||
| 			if (!in_array('courierMailAccount', $this->attributes['objectClass'])) { | 				&& ($profile['courierMailAccount_addExt'][0] == "true") | ||||||
| 				$this->attributes['objectClass'][] = 'courierMailAccount'; | 				&& !in_array('courierMailAccount', $this->attributes['objectClass'])) { | ||||||
| 			} | 			$this->attributes['objectClass'][] = 'courierMailAccount'; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -573,12 +573,7 @@ class courierMailAccount extends baseModule { | ||||||
| 	 * @return boolean only virtual account | 	 * @return boolean only virtual account | ||||||
| 	 */ | 	 */ | ||||||
| 	private function isUnixDisabled($modules) { | 	private function isUnixDisabled($modules) { | ||||||
| 		if (in_array('posixAccount', $modules)) { | 		return !in_array('posixAccount', $modules); | ||||||
| 			return false; |  | ||||||
| 		} |  | ||||||
| 		else { |  | ||||||
| 			return true; |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ use LAM\TYPES\TypeManager; | ||||||
| /* | /* | ||||||
| 
 | 
 | ||||||
|   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) |   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) | ||||||
|   Copyright (C) 2013 - 2018  Roland Gruber |   Copyright (C) 2013 - 2019  Roland Gruber | ||||||
| 
 | 
 | ||||||
|   This program is free software; you can redistribute it and/or modify |   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 |   it under the terms of the GNU General Public License as published by | ||||||
|  | @ -268,10 +268,10 @@ class kolabGroup extends baseModule { | ||||||
| 		// profile mappings in meta data
 | 		// profile mappings in meta data
 | ||||||
| 		parent::load_profile($profile); | 		parent::load_profile($profile); | ||||||
| 		// add extension
 | 		// add extension
 | ||||||
| 		if (isset($profile['kolabGroup_addExt'][0]) && ($profile['kolabGroup_addExt'][0] == "true")) { | 		if (isset($profile['kolabGroup_addExt'][0]) | ||||||
| 			if (!in_array('kolabGroupOfUniqueNames', $this->attributes['objectClass'])) { | 				&& ($profile['kolabGroup_addExt'][0] == "true") | ||||||
| 				$this->attributes['objectClass'][] = 'kolabGroupOfUniqueNames'; | 				&& !in_array('kolabGroupOfUniqueNames', $this->attributes['objectClass'])) { | ||||||
| 			} | 			$this->attributes['objectClass'][] = 'kolabGroupOfUniqueNames'; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -369,12 +369,7 @@ class kolabGroup extends baseModule { | ||||||
| 	 * @return boolean manage mail attribute | 	 * @return boolean manage mail attribute | ||||||
| 	 */ | 	 */ | ||||||
| 	private function manageMail($modules) { | 	private function manageMail($modules) { | ||||||
| 		if (in_array('qmailGroup', $modules)) { | 		return !in_array('qmailGroup', $modules); | ||||||
| 			return false; |  | ||||||
| 		} |  | ||||||
| 		else { |  | ||||||
| 			return true; |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/** | 	/** | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ use \LAM\PDF\PDFTableRow; | ||||||
| $Id$ | $Id$ | ||||||
| 
 | 
 | ||||||
|   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) |   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) | ||||||
|   Copyright (C) 2009 - 2017  Roland Gruber |   Copyright (C) 2009 - 2019  Roland Gruber | ||||||
| 
 | 
 | ||||||
|   This program is free software; you can redistribute it and/or modify |   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 |   it under the terms of the GNU General Public License as published by | ||||||
|  | @ -192,13 +192,17 @@ class nisnetgroup extends baseModule { | ||||||
| 		$return = new htmlTable(); | 		$return = new htmlTable(); | ||||||
| 		// user name
 | 		// user name
 | ||||||
| 		$groupName = ''; | 		$groupName = ''; | ||||||
| 		if (isset($this->attributes['cn'][0])) $groupName = $this->attributes['cn'][0]; | 		if (isset($this->attributes['cn'][0])) { | ||||||
|  | 			$groupName = $this->attributes['cn'][0]; | ||||||
|  | 		} | ||||||
| 		$nameInput = new htmlTableExtendedInputField(_("Group name"), 'cn', $groupName, 'cn'); | 		$nameInput = new htmlTableExtendedInputField(_("Group name"), 'cn', $groupName, 'cn'); | ||||||
| 		$nameInput->setRequired(true); | 		$nameInput->setRequired(true); | ||||||
| 		$nameInput->setFieldMaxLength(20); | 		$nameInput->setFieldMaxLength(20); | ||||||
| 		$return->addElement($nameInput, true); | 		$return->addElement($nameInput, true); | ||||||
| 		$description = ''; | 		$description = ''; | ||||||
| 		if (isset($this->attributes['description'][0])) $description = $this->attributes['description'][0]; | 		if (isset($this->attributes['description'][0])) { | ||||||
|  | 			$description = $this->attributes['description'][0]; | ||||||
|  | 		} | ||||||
| 		$return->addElement(new htmlTableExtendedInputField(_('Description'), 'description', $description, 'description'), true); | 		$return->addElement(new htmlTableExtendedInputField(_('Description'), 'description', $description, 'description'), true); | ||||||
| 		$subgroupsContainer = new htmlTable(); | 		$subgroupsContainer = new htmlTable(); | ||||||
| 		if (isset($this->attributes['memberNisNetgroup']) && is_array($this->attributes['memberNisNetgroup'])) { | 		if (isset($this->attributes['memberNisNetgroup']) && is_array($this->attributes['memberNisNetgroup'])) { | ||||||
|  | @ -262,9 +266,15 @@ class nisnetgroup extends baseModule { | ||||||
| 		$hostNew = ''; | 		$hostNew = ''; | ||||||
| 		$userNew = ''; | 		$userNew = ''; | ||||||
| 		$domainNew = ''; | 		$domainNew = ''; | ||||||
| 		if (isset($_POST['host_new'])) $hostNew = $_POST['host_new']; | 		if (isset($_POST['host_new'])) { | ||||||
| 		if (isset($_POST['user_new'])) $userNew = $_POST['user_new']; | 			$hostNew = $_POST['host_new']; | ||||||
| 		if (isset($_POST['domain_new'])) $domainNew = $_POST['domain_new']; | 		} | ||||||
|  | 		if (isset($_POST['user_new'])) { | ||||||
|  | 			$userNew = $_POST['user_new']; | ||||||
|  | 		} | ||||||
|  | 		if (isset($_POST['domain_new'])) { | ||||||
|  | 			$domainNew = $_POST['domain_new']; | ||||||
|  | 		} | ||||||
| 		$hostField = new htmlInputField('host_new', $hostNew); | 		$hostField = new htmlInputField('host_new', $hostNew); | ||||||
| 		$hostField->setFieldSize(20); | 		$hostField->setFieldSize(20); | ||||||
| 		$memberTable->addElement($hostField); | 		$memberTable->addElement($hostField); | ||||||
|  | @ -482,12 +492,16 @@ class nisnetgroup extends baseModule { | ||||||
| 		$return->addElement(new htmlButton($filterButtonName, _('Ok'))); | 		$return->addElement(new htmlButton($filterButtonName, _('Ok'))); | ||||||
| 		$return->addElement(new htmlHelpLink('filter'), true); | 		$return->addElement(new htmlHelpLink('filter'), true); | ||||||
| 		$title = _('Host name'); | 		$title = _('Host name'); | ||||||
| 		if (!$selectHost) $title = _('User name'); | 		if (!$selectHost) { | ||||||
|  | 			$title = _('User name'); | ||||||
|  | 		} | ||||||
| 		$return->addElement(new htmlOutputText($title)); | 		$return->addElement(new htmlOutputText($title)); | ||||||
| 		$return->addElement(new htmlSelect('selectBox', $options), true); | 		$return->addElement(new htmlSelect('selectBox', $options), true); | ||||||
| 		$return->addElement(new htmlSpacer(null, '10px'), true); | 		$return->addElement(new htmlSpacer(null, '10px'), true); | ||||||
| 		$type = 'host'; | 		$type = 'host'; | ||||||
| 		if (!$selectHost) $type = 'user'; | 		if (!$selectHost) { | ||||||
|  | 			$type = 'user'; | ||||||
|  | 		} | ||||||
| 		$buttonContainer = new htmlTable(); | 		$buttonContainer = new htmlTable(); | ||||||
| 		$buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'select', _('Ok'))); | 		$buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'select', _('Ok'))); | ||||||
| 		$buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Cancel'))); | 		$buttonContainer->addElement(new htmlAccountPageButton(get_class($this), 'attributes', 'back', _('Cancel'))); | ||||||
|  | @ -527,7 +541,9 @@ class nisnetgroup extends baseModule { | ||||||
| 		$existingGroups = $this->getGroupList(); | 		$existingGroups = $this->getGroupList(); | ||||||
| 		for ($i = 0; $i < sizeof($rawAccounts); $i++) { | 		for ($i = 0; $i < sizeof($rawAccounts); $i++) { | ||||||
| 			// add object class
 | 			// add object class
 | ||||||
| 			if (!in_array('nisNetgroup', $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = 'nisNetgroup'; | 			if (!in_array('nisNetgroup', $partialAccounts[$i]['objectClass'])) { | ||||||
|  | 				$partialAccounts[$i]['objectClass'][] = 'nisNetgroup'; | ||||||
|  | 			} | ||||||
| 			// add cn
 | 			// add cn
 | ||||||
| 			$partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['nisnetgroup_cn']]; | 			$partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['nisnetgroup_cn']]; | ||||||
| 			// description (UTF-8, no regex check needed)
 | 			// description (UTF-8, no regex check needed)
 | ||||||
|  | @ -558,12 +574,7 @@ class nisnetgroup extends baseModule { | ||||||
| 	* @return boolean true, if settings are complete | 	* @return boolean true, if settings are complete | ||||||
| 	*/ | 	*/ | ||||||
| 	function module_complete() { | 	function module_complete() { | ||||||
| 		if (isset($this->attributes['cn']) && (sizeof($this->attributes['cn']) > 0)) { | 		return (isset($this->attributes['cn']) && (sizeof($this->attributes['cn']) > 0)); | ||||||
| 			return true; |  | ||||||
| 		} |  | ||||||
| 		else { |  | ||||||
| 			return false; |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/** | 	/** | ||||||
|  |  | ||||||
|  | @ -3,7 +3,7 @@ use \LAM\TYPES\TypeManager; | ||||||
| /* | /* | ||||||
| 
 | 
 | ||||||
|   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) |   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) | ||||||
|   Copyright (C) 2013 - 2018  Roland Gruber |   Copyright (C) 2013 - 2019  Roland Gruber | ||||||
| 
 | 
 | ||||||
|   This program is free software; you can redistribute it and/or modify |   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 |   it under the terms of the GNU General Public License as published by | ||||||
|  | @ -367,10 +367,10 @@ class pykotaGroup extends baseModule { | ||||||
| 		// profile mappings in meta data
 | 		// profile mappings in meta data
 | ||||||
| 		parent::load_profile($profile); | 		parent::load_profile($profile); | ||||||
| 		// add extension
 | 		// add extension
 | ||||||
| 		if (isset($profile['pykotaGroup_addExt'][0]) && ($profile['pykotaGroup_addExt'][0] == "true")) { | 		if (isset($profile['pykotaGroup_addExt'][0]) | ||||||
| 			if (!in_array('pykotaGroup', $this->attributes['objectClass'])) { | 				&& ($profile['pykotaGroup_addExt'][0] == "true") | ||||||
| 				$this->attributes['objectClass'][] = 'pykotaGroup'; | 				&& !in_array('pykotaGroup', $this->attributes['objectClass'])) { | ||||||
| 			} | 			$this->attributes['objectClass'][] = 'pykotaGroup'; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | @ -504,14 +504,9 @@ class pykotaGroup extends baseModule { | ||||||
| 	 * @return bool not active | 	 * @return bool not active | ||||||
| 	 */ | 	 */ | ||||||
| 	private function isUnixOrGonInactive($modules) { | 	private function isUnixOrGonInactive($modules) { | ||||||
| 		if (in_array('posixGroup', $modules) | 		return !in_array('posixGroup', $modules) | ||||||
| 			|| in_array('groupOfNames', $modules) | 			&& !in_array('groupOfNames', $modules) | ||||||
| 			|| in_array('groupOfUniqueNames', $modules)) { | 			&& !in_array('groupOfUniqueNames', $modules); | ||||||
| 			return false; |  | ||||||
| 		} |  | ||||||
| 		else { |  | ||||||
| 			return true; |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/** | 	/** | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ use \LAM\TYPES\TypeManager; | ||||||
| /* | /* | ||||||
| 
 | 
 | ||||||
|   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) |   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) | ||||||
|   Copyright (C) 2013 - 2018  Roland Gruber |   Copyright (C) 2013 - 2019  Roland Gruber | ||||||
| 
 | 
 | ||||||
|   This program is free software; you can redistribute it and/or modify |   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 |   it under the terms of the GNU General Public License as published by | ||||||
|  | @ -961,7 +961,9 @@ class pykotaUser extends baseModule { | ||||||
| 		$return = array(); | 		$return = array(); | ||||||
| 		if (in_array('pykotaBalance', $fields)) { | 		if (in_array('pykotaBalance', $fields)) { | ||||||
| 			$pykotaBalance = ''; | 			$pykotaBalance = ''; | ||||||
| 			if (isset($attributes['pykotaBalance'][0])) $pykotaBalance = $attributes['pykotaBalance'][0]; | 			if (isset($attributes['pykotaBalance'][0])) { | ||||||
|  | 				$pykotaBalance = $attributes['pykotaBalance'][0]; | ||||||
|  | 			} | ||||||
| 			$row = new htmlResponsiveRow(); | 			$row = new htmlResponsiveRow(); | ||||||
| 			$row->addLabel(new htmlOutputText($this->getSelfServiceLabel('pykotaBalance', _('Balance')))); | 			$row->addLabel(new htmlOutputText($this->getSelfServiceLabel('pykotaBalance', _('Balance')))); | ||||||
| 			$row->addField(new htmlOutputText($pykotaBalance)); | 			$row->addField(new htmlOutputText($pykotaBalance)); | ||||||
|  | @ -969,7 +971,9 @@ class pykotaUser extends baseModule { | ||||||
| 		} | 		} | ||||||
| 		if (in_array('pykotaLifeTimePaid', $fields)) { | 		if (in_array('pykotaLifeTimePaid', $fields)) { | ||||||
| 			$pykotaLifeTimePaid = ''; | 			$pykotaLifeTimePaid = ''; | ||||||
| 			if (isset($attributes['pykotaLifeTimePaid'][0])) $pykotaLifeTimePaid = $attributes['pykotaLifeTimePaid'][0]; | 			if (isset($attributes['pykotaLifeTimePaid'][0])) { | ||||||
|  | 				$pykotaLifeTimePaid = $attributes['pykotaLifeTimePaid'][0]; | ||||||
|  | 			} | ||||||
| 			$row = new htmlResponsiveRow(); | 			$row = new htmlResponsiveRow(); | ||||||
| 			$row->addLabel(new htmlOutputText($this->getSelfServiceLabel('pykotaLifeTimePaid', _('Total paid')))); | 			$row->addLabel(new htmlOutputText($this->getSelfServiceLabel('pykotaLifeTimePaid', _('Total paid')))); | ||||||
| 			$row->addField(new htmlOutputText($pykotaLifeTimePaid)); | 			$row->addField(new htmlOutputText($pykotaLifeTimePaid)); | ||||||
|  | @ -989,7 +993,6 @@ class pykotaUser extends baseModule { | ||||||
| 					$amount = new htmlOutputText($parts[1]); | 					$amount = new htmlOutputText($parts[1]); | ||||||
| 					$amount->alignment = htmlElement::ALIGN_RIGHT; | 					$amount->alignment = htmlElement::ALIGN_RIGHT; | ||||||
| 					$pykotaPayments->add($amount, 3); | 					$pykotaPayments->add($amount, 3); | ||||||
| 					$comment = empty($parts[2]) ? '' : $parts[2]; |  | ||||||
| 					$pykotaPayments->add(new htmlOutputText(base64_decode($parts[2])), 6); | 					$pykotaPayments->add(new htmlOutputText(base64_decode($parts[2])), 6); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|  | @ -1045,10 +1048,10 @@ class pykotaUser extends baseModule { | ||||||
| 	 */ | 	 */ | ||||||
| 	public function checkSelfServiceSettings(&$options, &$profile) { | 	public function checkSelfServiceSettings(&$options, &$profile) { | ||||||
| 		$errors = array(); | 		$errors = array(); | ||||||
| 		if (get_class($this) == 'pykotaUser') { | 		if ((get_class($this) == 'pykotaUser') | ||||||
| 			if (!empty($options['pykotaUser_jobSuffix'][0]) && !get_preg($options['pykotaUser_jobSuffix'][0], 'dn')) { | 				&& !empty($options['pykotaUser_jobSuffix'][0]) | ||||||
| 				$errors[] = $this->messages['jobSuffix'][0]; | 				&& !get_preg($options['pykotaUser_jobSuffix'][0], 'dn')) { | ||||||
| 			} | 			$errors[] = $this->messages['jobSuffix'][0]; | ||||||
| 		} | 		} | ||||||
| 		return $errors; | 		return $errors; | ||||||
| 	} | 	} | ||||||
|  | @ -1060,13 +1063,7 @@ class pykotaUser extends baseModule { | ||||||
| 	 * @return boolean manage uid attribute | 	 * @return boolean manage uid attribute | ||||||
| 	 */ | 	 */ | ||||||
| 	private function manageUid($modules) { | 	private function manageUid($modules) { | ||||||
| 		if (in_array('inetOrgPerson', $modules) | 		return !in_array('inetOrgPerson', $modules) && !in_array('posixAccount', $modules); | ||||||
| 			|| in_array('posixAccount', $modules)) { |  | ||||||
| 			return false; |  | ||||||
| 		} |  | ||||||
| 		else { |  | ||||||
| 			return true; |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/** | 	/** | ||||||
|  | @ -1076,12 +1073,7 @@ class pykotaUser extends baseModule { | ||||||
| 	 * @return boolean manage mail attribute | 	 * @return boolean manage mail attribute | ||||||
| 	 */ | 	 */ | ||||||
| 	private function manageMail($modules) { | 	private function manageMail($modules) { | ||||||
| 		if (in_array('inetOrgPerson', $modules)) { | 		return !in_array('inetOrgPerson', $modules); | ||||||
| 			return false; |  | ||||||
| 		} |  | ||||||
| 		else { |  | ||||||
| 			return true; |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/** | 	/** | ||||||
|  | @ -1091,12 +1083,7 @@ class pykotaUser extends baseModule { | ||||||
| 	 * @return boolean manage description attribute | 	 * @return boolean manage description attribute | ||||||
| 	 */ | 	 */ | ||||||
| 	private function manageDescription($modules) { | 	private function manageDescription($modules) { | ||||||
| 		if (in_array('inetOrgPerson', $modules)) { | 		return !in_array('inetOrgPerson', $modules); | ||||||
| 			return false; |  | ||||||
| 		} |  | ||||||
| 		else { |  | ||||||
| 			return true; |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/** | 	/** | ||||||
|  |  | ||||||
|  | @ -312,13 +312,13 @@ function showConfirmationDialog(title, okText, cancelText, dialogDiv, formName, | ||||||
| 		jQuery('#' + dialogDiv).dialog('close'); | 		jQuery('#' + dialogDiv).dialog('close'); | ||||||
| 		if (resultField) { | 		if (resultField) { | ||||||
| 			jQuery('#' + resultField).val('ok'); | 			jQuery('#' + resultField).val('ok'); | ||||||
| 		}; | 		} | ||||||
| 		appendDialogInputsToFormAndSubmit(dialogDiv, formName); | 		appendDialogInputsToFormAndSubmit(dialogDiv, formName); | ||||||
| 	}; | 	}; | ||||||
| 	buttonList[cancelText] = function() { | 	buttonList[cancelText] = function() { | ||||||
| 		if (resultField) { | 		if (resultField) { | ||||||
| 			jQuery('#' + resultField).val('cancel'); | 			jQuery('#' + resultField).val('cancel'); | ||||||
| 		}; | 		} | ||||||
| 		jQuery(this).dialog("close"); | 		jQuery(this).dialog("close"); | ||||||
| 	}; | 	}; | ||||||
| 	jQuery('#' + dialogDiv).dialog({ | 	jQuery('#' + dialogDiv).dialog({ | ||||||
|  | @ -375,7 +375,7 @@ function equalWidth(elementIDs) { | ||||||
| 	for (var i = 0; i < elementIDs.length; ++i) { | 	for (var i = 0; i < elementIDs.length; ++i) { | ||||||
| 		if (jQuery(elementIDs[i]).width() > maxWidth) { | 		if (jQuery(elementIDs[i]).width() > maxWidth) { | ||||||
| 			maxWidth = jQuery(elementIDs[i]).width(); | 			maxWidth = jQuery(elementIDs[i]).width(); | ||||||
| 		}; | 		} | ||||||
| 	} | 	} | ||||||
| 	if (maxWidth < 5) { | 	if (maxWidth < 5) { | ||||||
| 		// no action if invalid width value (e.g. because of hidden tab)
 | 		// no action if invalid width value (e.g. because of hidden tab)
 | ||||||
|  | @ -396,7 +396,7 @@ function equalHeight(elementIDs) { | ||||||
| 	for (var i = 0; i < elementIDs.length; ++i) { | 	for (var i = 0; i < elementIDs.length; ++i) { | ||||||
| 		if (jQuery(elementIDs[i]).height() > max) { | 		if (jQuery(elementIDs[i]).height() > max) { | ||||||
| 			max = jQuery(elementIDs[i]).height(); | 			max = jQuery(elementIDs[i]).height(); | ||||||
| 		}; | 		} | ||||||
| 	} | 	} | ||||||
| 	for (var i = 0; i < elementIDs.length; ++i) { | 	for (var i = 0; i < elementIDs.length; ++i) { | ||||||
| 		jQuery(elementIDs[i]).css({'height': max - (jQuery(elementIDs[i]).outerHeight() - jQuery(elementIDs[i]).height())}); | 		jQuery(elementIDs[i]).css({'height': max - (jQuery(elementIDs[i]).outerHeight() - jQuery(elementIDs[i]).height())}); | ||||||
|  | @ -768,7 +768,7 @@ window.lam.gui.equalHeight = function() { | ||||||
| 	jQuery('.lamEqualHeightTabContent').each(function() { | 	jQuery('.lamEqualHeightTabContent').each(function() { | ||||||
| 		if (jQuery(this).height() > maxHeight) { | 		if (jQuery(this).height() > maxHeight) { | ||||||
| 			maxHeight = jQuery(this).height(); | 			maxHeight = jQuery(this).height(); | ||||||
| 		}; | 		} | ||||||
| 	}); | 	}); | ||||||
| 	jQuery('.lamEqualHeightTabContent').each(function() { | 	jQuery('.lamEqualHeightTabContent').each(function() { | ||||||
| 		jQuery(this).css({'height': maxHeight}); | 		jQuery(this).css({'height': maxHeight}); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue