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

Przypomnij: use acl to fetch data

Piotr Labudda 11 лет назад
Родитель
Сommit
c6aa59c0fe
1 измененных файлов с 31 добавлено и 0 удалено
  1. 31 0
      SE/se-lib/Przypomnij.php

+ 31 - 0
SE/se-lib/Przypomnij.php

@@ -33,6 +33,22 @@ class Przypomnij {
 
 	public function fetchData() {
 		$db = DB::getDB();
+
+		$userLogin = User::getLogin();
+		$usrAclGroups = User::getLdapGroupsNames();
+		//$usrAclGroups[] = '';// TODO: empty group not allowed to view for everyone?
+		$sqlUsrAclGroups = "'" . implode("','", $usrAclGroups) . "'";
+		$sqlFltr_TODO = "
+			t.`A_ADM_COMPANY` in({$sqlUsrAclGroups})
+			and t.`A_CLASSIFIED` in({$sqlUsrAclGroups})
+		";
+
+		$sqlAclFltrKoresp = "
+			and (kor.`A_ADM_COMPANY` in({$sqlUsrAclGroups})
+					or kor.`A_CLASSIFIED` in({$sqlUsrAclGroups})
+					or kor.`L_APPOITMENT_USER`='{$userLogin}'
+					)
+		";
 		$sql = "select kor.ID
 				, kor.ID_PROJECT
 				, kor.A_STATUS
@@ -51,6 +67,7 @@ class Przypomnij {
 				, kor.K_LOKALIZACJA_OPIS
 			from `IN7_DZIENNIK_KORESP` as kor
 			where kor.`A_STATUS` not in ('OFF_HARD','DELETED')
+				{$sqlAclFltrKoresp}
 		";
 		$res = $db->query($sql);
 		while ($r = $db->fetch($res)) {
@@ -64,6 +81,12 @@ class Przypomnij {
 			$this->_data['koresp'][$r->ID] = $r;
 		}
 
+		$sqlAclFltrProj = "
+			and (proj.`A_ADM_COMPANY` in({$sqlUsrAclGroups})
+					or proj.`A_CLASSIFIED` in({$sqlUsrAclGroups})
+					or proj.`L_APPOITMENT_USER`='{$userLogin}'
+					)
+		";
 		$sql = "select proj.ID
 				, proj.P_ID
 				, proj.A_STATUS
@@ -80,6 +103,7 @@ class Przypomnij {
 				-- ? , proj.A_PROBLEM, proj.A_PROBLEM_DATE, proj.A_PROBLEM_DESC
 			from `IN7_MK_BAZA_DYSTRYBUCJI` as proj
 			where proj.`A_STATUS` NOT IN ('OFF_HARD','DELETED')
+				{$sqlAclFltrProj}
 		";
 		$res = $db->query($sql);
 		while ($r = $db->fetch($res)) {
@@ -94,6 +118,12 @@ class Przypomnij {
 			$this->_data['projekt'][$r->ID] = $r;
 		}
 
+		$sqlAclFltrProces = "
+			and (p.`A_ADM_COMPANY` in({$sqlUsrAclGroups})
+					or p.`A_CLASSIFIED` in({$sqlUsrAclGroups})
+					or p.`L_APPOITMENT_USER`='{$userLogin}'
+					)
+		";
 		$sql = "select p.ID
 				, p.`DESC`
 				, p.`A_STATUS`
@@ -106,6 +136,7 @@ class Przypomnij {
 				and p.`A_STATUS` in('NORMAL', 'WAITING')
 				and p.`L_APPOITMENT_DATE`!=''
 				and p.`L_APPOITMENT_USER`!=''
+				{$sqlAclFltrProces}
 		";
 		$res = $db->query($sql);
 		while ($r = $db->fetch($res)) {