Forráskód Böngészése

updated fetch groups if no ldap config

Piotr Labudda 8 éve
szülő
commit
ee18983f4e

+ 3 - 2
SE/procesy/user.php

@@ -14,6 +14,7 @@ function task_USER() {
 
 	// Stanowiska powiazane z userem
 	$stanowiska = User::getGroups();
+	DBG::log($stanowiska, 'array', '$stanowiska');
 	?>
 	<?php if (empty($stanowiska)) : ?>
 		<p class="red">Nie jestes przypisany do żadnego stanowiska - pilnie skontaktuj się z przełożonym!</p>
@@ -198,7 +199,7 @@ function task_USERS_show_items( $params, &$page_nav, &$items ) {
 				echo ' - wyczyść filtry ' . App::link("x", array('task'=>App::get_task(), '_p'=>$page_nav->page_nr), array('title'=>"Wyczyść filtr", 'ico'=>'del.png'));
 			} else if ($page_nav->last_page_nr > 0 && $page_nav->page_nr > 0) {
 				echo ' - wróć do ' . App::link("pierwszej strony", $base_params, array('title'=>"pierwsza strona"));
-			} else 
+			} else
 		echo '</td>';
 	}
 	else {
@@ -292,7 +293,7 @@ function task_USER_EDIT() {
 	}
 
 	$groups = UsersHelper::get_group_list();
-	$get_localisation_list = UsersHelper::get_localisation_list(); 
+	$get_localisation_list = UsersHelper::get_localisation_list();
 	$user_data->groups = UsersHelper::get_group_by_user( $user_data->ID, array('T_TELBOX_NAME'=>1) );
 
 	$user_cols = array();

+ 1 - 1
SE/se-lib/TypespecialVariable.php

@@ -295,7 +295,7 @@ jQuery(document).ready(function(){
 				Lib::loadClass('UsersHelper');
 				$userName = User::getLogin();
 				$userLdapGroups = UsersHelper::getLDAPGroupByUserName($userName);
-				if(V::get('DBG_TS', 0, $_GET) > 2){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">userLdapGroups (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($userLdapGroups);echo'</pre>';}
+				DBG::log($userLdapGroups, 'array', '$userLdapGroups = UsersHelper::getLDAPGroupByUserName('.$userName.')');
 				if (!empty($userLdapGroups)) {
 					foreach ($userLdapGroups as $kID => $vLdapGroup) {
 						$allowGroup = false;

+ 32 - 2
SE/se-lib/UsersLdapHelper.php

@@ -104,6 +104,30 @@ class UsersLdapHelper {
 
 		$attrMap = array('apple-generateduid'=>'appleUID', 'gidNumber'=>'gidNumber', 'cn'=>'cn', 'apple-group-realname'=>'name');// (givenName, sn) = cn
 
+		if (!Config::getConfFile('default_ldap')) {
+			return array_merge(
+				array_map(function ($group) {
+					return (object)[
+						'appleUID' => $group->ID, // 'EBE2DE46-1B11-4793-BBAB-A47486B60E6C',
+						'gidNumber' => $group->ID, // '1025',
+						'cn' => "{$group->ID}_{$group->DESC}", // 'workgroup',
+						'name' => "[{$group->ID}] {$group->DESC}", // 'Workgroup',
+					];
+				}, User::getGroups(),
+				[ (object)[
+					'appleUID' => '1025', // 'EBE2DE46-1B11-4793-BBAB-A47486B60E6C',
+					'gidNumber' => '1025',
+					'cn' => 'workgroup',
+					'name' => 'Workgroup',
+				] ]
+			));
+			//   array (
+			//     'appleUID' => 'EBE2DE46-1B11-4793-BBAB-A47486B60E6C',
+			//     'gidNumber' => '1025',
+			//     'cn' => 'workgroup',
+			//     'name' => 'Workgroup',
+			//   ),
+		}
 		Lib::loadClass('LDAP');
 		$ldap = LDAP::getInstance();
 
@@ -164,7 +188,7 @@ class UsersLdapHelper {
 				//$lastLoopFound = array_keys($userLdapGroupsAdd);
 			}
 		}
-
+		DBG::log($userLdapGroups, 'array', '$userLdapGroups');
 		return $userLdapGroups;
 	}
 
@@ -380,6 +404,9 @@ class UsersLdapHelper {
 
 		Lib::loadClass('LDAP');
 		$ldap = LDAP::getInstance();
+		if (!$ldap) {
+			return []; // TODO: fetch user groups from zasoby
+		}
 
 		$filter = "(&(objectClass=apple-group)(|(cn={$groupID}-*)(cn={$groupID}_*)))";
 		$attributes = array();
@@ -436,7 +463,7 @@ class UsersLdapHelper {
 		return $allLdapGroups;
 	}
 
-	public static function getGroupsAll($allAttrs = false) {
+	public static function getGroupsAll($allAttrs = false) { // used only in TypespecialVariable for field 'DEFAULT_ACL_GROUP'
 		$allLdapGroups = array();
 
 		$attrMap = array('apple-generateduid'=>'appleUID', 'gidNumber'=>'gidNumber', 'cn'=>'cn');// (givenName, sn) = cn
@@ -445,6 +472,9 @@ class UsersLdapHelper {
 
 		Lib::loadClass('LDAP');
 		$ldap = LDAP::getInstance();
+		if (!$ldap) {
+			return []; // TODO: fetch all groups from zasoby
+		}
 
 		$filter = "(objectClass=apple-group)";
 		$attributes = array();