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

Ograniczenie korzystania z przypomnij tylko dla osob ktore maja permy do tabel

a.binder 11 лет назад
Родитель
Сommit
c244461717
3 измененных файлов с 50 добавлено и 23 удалено
  1. 39 22
      SE/se-lib/Przypomnij.php
  2. 6 0
      SE/se-lib/UserAcl.php
  3. 5 1
      SE/superedit-SQIX_STRUCTURE_DB_SYNC.php

+ 39 - 22
SE/se-lib/Przypomnij.php

@@ -302,32 +302,49 @@ if(V::get('DBG_P', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:au
 	public function getAllowedUsersList() {
 		$allowedUsers = array();
 		$db = DB::getDB();
-		$sql = "select distinct `L_APPOITMENT_USER` from `IN7_MK_BAZA_DYSTRYBUCJI` where `L_APPOITMENT_USER`!='' and `A_STATUS` not in ('OFF_HARD','DELETED') ";
-		// TODO: $zap_sql = "SELECT DISTINCT  `L_APPOITMENT_USER` FROM  `IN7_MK_BAZA_DYSTRYBUCJI` WHERE  `L_APPOITMENT_USER` !=  '' and (  A_CLASSIFIED in  ('".implode( "','" , $_SESSION['AUTH_LDAP_CLIENT__LDAP_USERS'][$_SESSION['ADM_ACCOUNT']])."') or A_CLASSIFIED=''   ) ";
-		$res = $db->query($sql) or die("blad zapytania do bazy {$sql}");
-		while ($r = $db->fetch($res)) {
-			$allowedUsers[$r->L_APPOITMENT_USER] = true;
+				
+		
+		$userAcl = User::getAcl();
+		$tblAcl = $userAcl->getTableAcl(ProcesHelper::getZasobTableID('IN7_MK_BAZA_DYSTRYBUCJI'));
+		if($tblAcl)
+		if($tblAcl->hasFieldPerm($tblAcl->getFieldIdByName('ID'),'R')) {
+			$sql = "select distinct `L_APPOITMENT_USER` from `IN7_MK_BAZA_DYSTRYBUCJI` where `L_APPOITMENT_USER`!='' and `A_STATUS` not in ('OFF_HARD','DELETED') ";
+			// TODO: $zap_sql = "SELECT DISTINCT  `L_APPOITMENT_USER` FROM  `IN7_MK_BAZA_DYSTRYBUCJI` WHERE  `L_APPOITMENT_USER` !=  '' and (  A_CLASSIFIED in  ('".implode( "','" , $_SESSION['AUTH_LDAP_CLIENT__LDAP_USERS'][$_SESSION['ADM_ACCOUNT']])."') or A_CLASSIFIED=''   ) ";
+			$res = $db->query($sql) or die("blad zapytania do bazy {$sql}");
+			while ($r = $db->fetch($res)) {
+				$allowedUsers[$r->L_APPOITMENT_USER] = true;
+			}
 		}
 
-		$sql = "select distinct `L_APPOITMENT_USER` from `IN7_DZIENNIK_KORESP` where `L_APPOITMENT_USER`!='' and `A_STATUS` not in ('OFF_HARD','DELETED') ";
-		//TODO: $zap_sql = "SELECT DISTINCT  `L_APPOITMENT_USER` FROM  `IN7_DZIENNIK_KORESP` WHERE  `L_APPOITMENT_USER` !=  '' and (  A_CLASSIFIED in  ('".implode( "','" , $_SESSION['AUTH_LDAP_CLIENT__LDAP_USERS'][$_SESSION['ADM_ACCOUNT']])."') or A_CLASSIFIED=''   )  ; ";
-		$res = $db->query($sql) or die("blad zapytania do bazy {$sql}");
-		while ($r = $db->fetch($res)) {
-			$allowedUsers[$r->L_APPOITMENT_USER] = true;
+		$tblAcl = $userAcl->getTableAcl(ProcesHelper::getZasobTableID('IN7_DZIENNIK_KORESP'));
+		if($tblAcl)
+		if($tblAcl->hasFieldPerm($tblAcl->getFieldIdByName('ID'),'R')) {
+			$sql = "select distinct `L_APPOITMENT_USER` from `IN7_DZIENNIK_KORESP` where `L_APPOITMENT_USER`!='' and `A_STATUS` not in ('OFF_HARD','DELETED') ";
+			//TODO: $zap_sql = "SELECT DISTINCT  `L_APPOITMENT_USER` FROM  `IN7_DZIENNIK_KORESP` WHERE  `L_APPOITMENT_USER` !=  '' and (  A_CLASSIFIED in  ('".implode( "','" , $_SESSION['AUTH_LDAP_CLIENT__LDAP_USERS'][$_SESSION['ADM_ACCOUNT']])."') or A_CLASSIFIED=''   )  ; ";
+			$res = $db->query($sql) or die("blad zapytania do bazy {$sql}");
+			while ($r = $db->fetch($res)) {
+				$allowedUsers[$r->L_APPOITMENT_USER] = true;
+			}
 		}
-
-		$sql = "select distinct `L_APPOITMENT_USER` from `CRM_PROCES` where `L_APPOITMENT_USER`!='' and `A_STATUS` not in ('OFF_HARD','DELETED') ";
-		//TODO: $zap_sql = "SELECT DISTINCT  `L_APPOITMENT_USER` FROM  `IN7_DZIENNIK_KORESP` WHERE  `L_APPOITMENT_USER` !=  '' and (  A_CLASSIFIED in  ('".implode( "','" , $_SESSION['AUTH_LDAP_CLIENT__LDAP_USERS'][$_SESSION['ADM_ACCOUNT']])."') or A_CLASSIFIED=''   )  ; ";
-		$res = $db->query($sql) or die("blad zapytania do bazy {$sql}");
-		while ($r = $db->fetch($res)) {
-			$allowedUsers[$r->L_APPOITMENT_USER] = true;
+		$tblAcl = $userAcl->getTableAcl(ProcesHelper::getZasobTableID('CRM_PROCES'));
+		if($tblAcl)
+		if($tblAcl->hasFieldPerm($tblAcl->getFieldIdByName('ID'),'R')) {
+			$sql = "select distinct `L_APPOITMENT_USER` from `CRM_PROCES` where `L_APPOITMENT_USER`!='' and `A_STATUS` not in ('OFF_HARD','DELETED') ";
+			//TODO: $zap_sql = "SELECT DISTINCT  `L_APPOITMENT_USER` FROM  `IN7_DZIENNIK_KORESP` WHERE  `L_APPOITMENT_USER` !=  '' and (  A_CLASSIFIED in  ('".implode( "','" , $_SESSION['AUTH_LDAP_CLIENT__LDAP_USERS'][$_SESSION['ADM_ACCOUNT']])."') or A_CLASSIFIED=''   )  ; ";
+			$res = $db->query($sql) or die("blad zapytania do bazy {$sql}");
+			while ($r = $db->fetch($res)) {
+				$allowedUsers[$r->L_APPOITMENT_USER] = true;
+			}
 		}
-
-		$sql = "select distinct `L_APPOITMENT_USER` from `CRM_LISTA_ZASOBOW` where `L_APPOITMENT_USER`!='' and `A_STATUS` not in ('OFF_HARD','DELETED') ";
-		//TODO: $zap_sql = "SELECT DISTINCT  `L_APPOITMENT_USER` FROM  `IN7_DZIENNIK_KORESP` WHERE  `L_APPOITMENT_USER` !=  '' and (  A_CLASSIFIED in  ('".implode( "','" , $_SESSION['AUTH_LDAP_CLIENT__LDAP_USERS'][$_SESSION['ADM_ACCOUNT']])."') or A_CLASSIFIED=''   )  ; ";
-		$res = $db->query($sql) or die("blad zapytania do bazy {$sql}");
-		while ($r = $db->fetch($res)) {
-			$allowedUsers[$r->L_APPOITMENT_USER] = true;
+		$tblAcl = $userAcl->getTableAcl(ProcesHelper::getZasobTableID('CRM_LISTA_ZASOBOW'));
+		if($tblAcl)
+		if($tblAcl->hasFieldPerm($tblAcl->getFieldIdByName('ID'),'R')) {
+			$sql = "select distinct `L_APPOITMENT_USER` from `CRM_LISTA_ZASOBOW` where `L_APPOITMENT_USER`!='' and `A_STATUS` not in ('OFF_HARD','DELETED') ";
+			//TODO: $zap_sql = "SELECT DISTINCT  `L_APPOITMENT_USER` FROM  `IN7_DZIENNIK_KORESP` WHERE  `L_APPOITMENT_USER` !=  '' and (  A_CLASSIFIED in  ('".implode( "','" , $_SESSION['AUTH_LDAP_CLIENT__LDAP_USERS'][$_SESSION['ADM_ACCOUNT']])."') or A_CLASSIFIED=''   )  ; ";
+			$res = $db->query($sql) or die("blad zapytania do bazy {$sql}");
+			while ($r = $db->fetch($res)) {
+				$allowedUsers[$r->L_APPOITMENT_USER] = true;
+			}
 		}
 
 		ksort($allowedUsers);

+ 6 - 0
SE/se-lib/UserAcl.php

@@ -12,6 +12,12 @@ class UserAcl {
 	var $_use_cache = false;
 	/**
 	 * User groups (cached)
+	 *
+	 * should be called like :
+	 * $userAcl = User::getAcl();
+	 *	$tblAcl = $userAcl->getTableAcl(ProcesHelper::getZasobTableID('CRM_LISTA_ZASOBOW'));
+	 *	if($tblAcl)
+	 * 	if($tblAcl->hasFieldPerm($tblAcl->getFieldIdByName('ID'),'R')) $tree->set_param('hasFieldPerm__ID', true);
 	 */
 	var $_groups = array();
 	var $_proces_ids = array();

+ 5 - 1
SE/superedit-SQIX_STRUCTURE_DB_SYNC.php

@@ -765,7 +765,11 @@ $CONNLOCAL->query('set global max_allowed_packet=1000000000');
 						continue ; 
 					}
 
-				
+					//@2015-05-15 obejscie typespecial PARAM_OUT dla przekazywanych parametrów np. &ZASOB_ID=4095 - trzeba tutaj tez podmienić na właściwy numer zasobu.
+					if($h->TYPE=='PARAM_OUT') {
+					//	if(strstr($h->DESC, '&ZASOB_ID='))
+					}
+					
 					
 					$sql[]="update ".$h->REM_TABLE." set PARENT_ID='".$h->DST_TABLE_ID."',`SYNC_SQIX_STATUS`=concat(`SYNC_SQIX_STATUS`,'_FIX_ZASOB') where PARENT_ID='".$h->SRC_TABLE_ID."' and SYNC_SQIX_STATUS not like '%FIX_ZASOB%' and SYNC_SQIX_STATUS not like '' ;";
 					$sql[]="update CRM_WSKAZNIK set ID_ZASOB='".$h->DST_TABLE_ID."',`SYNC_SQIX_STATUS`=concat(`SYNC_SQIX_STATUS`,'_FIX_ZASOB') where ID_ZASOB='".$h->SRC_TABLE_ID."' and (  SYNC_SQIX_STATUS not like '%FIX_ZASOB%' ) and SYNC_SQIX_STATUS not like '' ;";	//WSKAZNIK moze miec 2 razy aktualizacje tylko