Преглед изворни кода

fixed fetchData by given user perms

Piotr Labudda пре 10 година
родитељ
комит
9c4a7a31ce
1 измењених фајлова са 19 додато и 10 уклоњено
  1. 19 10
      SE/se-lib/Przypomnij.php

+ 19 - 10
SE/se-lib/Przypomnij.php

@@ -31,11 +31,20 @@ class Przypomnij {
 		return $this->_data;
 	}
 
-	public function fetchData() {
+	public function fetchData($usrLogin = null) {
 		$db = DB::getDB();
 
-		$userLogin = User::getLogin();
-		$usrAclGroups = User::getLdapGroupsNames();
+		if (!$usrLogin) {
+			$usrLogin = User::getLogin();
+			$usrAclGroups = User::getLdapGroupsNames();
+		} else {
+			$usrAclGroups = array();
+			Lib::loadClass('UsersLdapHelper');
+			$ldapGroups = UsersLdapHelper::getUserGroups($usrLogin, 3);
+			foreach ($ldapGroups as $kID => $vLDAPGroup) {
+				$usrAclGroups[$kID] = $vLDAPGroup->cn;
+			}
+		}
 		//$usrAclGroups[] = '';// TODO: empty group not allowed to view for everyone?
 		$sqlUsrAclGroups = "'" . implode("','", $usrAclGroups) . "'";
 		$sqlFltr_TODO = "
@@ -46,7 +55,7 @@ class Przypomnij {
 		$sqlAclFltrKoresp = "
 			and (kor.`A_ADM_COMPANY` in({$sqlUsrAclGroups})
 					or kor.`A_CLASSIFIED` in({$sqlUsrAclGroups})
-					or kor.`L_APPOITMENT_USER`='{$userLogin}'
+					or kor.`L_APPOITMENT_USER`='{$usrLogin}'
 					)
 		";
 		$sql = "select kor.ID
@@ -84,7 +93,7 @@ class Przypomnij {
 		$sqlAclFltrProj = "
 			and (proj.`A_ADM_COMPANY` in({$sqlUsrAclGroups})
 					or proj.`A_CLASSIFIED` in({$sqlUsrAclGroups})
-					or proj.`L_APPOITMENT_USER`='{$userLogin}'
+					or proj.`L_APPOITMENT_USER`='{$usrLogin}'
 					)
 		";
 		$sql = "select proj.ID
@@ -121,7 +130,7 @@ class Przypomnij {
 		$sqlAclFltrProces = "
 			and (p.`A_ADM_COMPANY` in({$sqlUsrAclGroups})
 					or p.`A_CLASSIFIED` in({$sqlUsrAclGroups})
-					or p.`L_APPOITMENT_USER`='{$userLogin}'
+					or p.`L_APPOITMENT_USER`='{$usrLogin}'
 					)
 		";
 		$sql = "select p.ID
@@ -152,7 +161,7 @@ class Przypomnij {
 		$sqlAclFltrProblems = "
 			and (probl.`A_ADM_COMPANY` in({$sqlUsrAclGroups})
 					or probl.`A_CLASSIFIED` in({$sqlUsrAclGroups})
-					or probl.`L_APPOITMENT_USER`='{$userLogin}'
+					or probl.`L_APPOITMENT_USER`='{$usrLogin}'
 					)
 		";
 		$sql = "select probl.ID
@@ -187,7 +196,7 @@ class Przypomnij {
 		$sqlAclFltrProces = "
 			and (p.`A_ADM_COMPANY` in({$sqlUsrAclGroups})
 					or p.`A_CLASSIFIED` in({$sqlUsrAclGroups})
-					or p.`L_APPOITMENT_USER`='{$userLogin}'
+					or p.`L_APPOITMENT_USER`='{$usrLogin}'
 					)
 		";
 		$sql = "select p.ID
@@ -399,7 +408,7 @@ if(V::get('DBG_P', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:au
 		$allowedUsers = array();
 		$db = DB::getDB();
 
-		$userLogin = User::getLogin();
+		$usrLogin = User::getLogin();
 		$usrAclGroups = User::getLdapGroupsNames();
 		//$usrAclGroups[] = '';// TODO: allow empty for everyone?
 		$sqlUsrAclGroups = "'" . implode("','", $usrAclGroups) . "'";
@@ -430,7 +439,7 @@ if(V::get('DBG_P', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:au
 							and t.`{$fldGroupRead}` in({$sqlUsrAclGroups})
 						";
 						if ($fldOwner) {
-							$sqlFltr = "( ({$sqlFltr}) or t.`{$fldOwner}`='{$userLogin}' )";
+							$sqlFltr = "( ({$sqlFltr}) or t.`{$fldOwner}`='{$usrLogin}' )";
 						}
 						$sqlAclFltr = " and {$sqlFltr}";
 					}