Просмотр исходного кода

updated fetch one group if no ldap config

Piotr Labudda 8 лет назад
Родитель
Сommit
38006b5880
2 измененных файлов с 28 добавлено и 3 удалено
  1. 17 0
      SE/se-lib/UsersHelper.php
  2. 11 3
      SE/se-lib/UsersLdapHelper.php

+ 17 - 0
SE/se-lib/UsersHelper.php

@@ -401,6 +401,23 @@ class UsersHelper {
 		return $allGroups;
 	}
 
+	public static function getGroupByID($id) {
+		$db = DB::getDB();
+		$sql = "
+			select z.`ID`, z.`TYPE`, z.`DESC`, z.`A_LDAP_GID`
+			from `CRM_LISTA_ZASOBOW` as z
+			where
+				z.`A_STATUS` in('WAITING', 'NORMAL')
+				and z.`TYPE` in('STANOWISKO','DZIAL','PODMIOT')
+				and z.ID = {$id}
+		";
+		$res = $db->query($sql);
+		while ($r = $db->fetch($res)) {
+			return $r;
+		}
+		return null;
+	}
+
 	/**
 	 * @params $ids array of integer
 	 */

+ 11 - 3
SE/se-lib/UsersLdapHelper.php

@@ -402,11 +402,19 @@ class UsersLdapHelper {
 		$attrMap['apple-group-realname'] = 'realName';
 		$attrMap['apple-group-nestedgroup'] = 'nestedGroups';
 
+		if (!Config::getConfFile('default_ldap')) {
+			Lib::loadClass('UsersHelper');
+			$group = UsersHelper::getGroupByID($groupID);
+			if (!$group) return null;
+			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',
+			];
+		}
 		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();