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

Acl fix tblAcl init at getTableAcl

Piotr Labudda 10 лет назад
Родитель
Сommit
b2c76aaaf7
2 измененных файлов с 10 добавлено и 6 удалено
  1. 7 5
      SE/se-lib/Przypomnij.php
  2. 3 1
      SE/se-lib/UserAcl.php

+ 7 - 5
SE/se-lib/Przypomnij.php

@@ -338,7 +338,7 @@ if(V::get('DBG_P', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:au
 		$usrAclGroups = User::getLdapGroupsNames();
 		//$usrAclGroups[] = '';// TODO: allow empty for everyone?
 		$sqlUsrAclGroups = "'" . implode("','", $usrAclGroups) . "'";
-		if(V::get('DBG_P', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sqlUsrAclGroups (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sqlUsrAclGroups);echo'</pre>';}
+		DBG::_('DBG_P', '>2', 'sqlUsrAclGroups', $sqlUsrAclGroups, __CLASS__, __FUNCTION__, __LINE__);
 
 		$tblsToSearch = array();
 		$tblsToSearch[] = 'IN7_MK_BAZA_DYSTRYBUCJI';
@@ -377,7 +377,7 @@ if(V::get('DBG_P', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:au
 					while ($r = $db->fetch($res)) {
 						$allowedUsers[$r->L_APPOITMENT_USER] = true;
 					}
-					if(V::get('DBG_P', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">allowedUsers after '.$tblName.' (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): '.implode(',', array_keys($allowedUsers)).'</pre>';}
+					DBG::_('DBG_P', '>2', 'allowedUsers after '.$tblName.'', implode(',', array_keys($allowedUsers)), __CLASS__, __FUNCTION__, __LINE__);
 				}
 			}
 		}
@@ -387,10 +387,12 @@ if(V::get('DBG_P', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:au
 			$tblName = 'ADMIN_USERS';
 			$tblZasobId = ProcesHelper::getZasobTableID($tblName);
 			if (!$userAcl->hasTableAcl($tblZasobId)) {
+				DBG::_('DBG_P', '>2', '!hasTableAcl', null, __CLASS__, __FUNCTION__, __LINE__);
 				return null;
 			}
 			$tblAcl = $userAcl->getTableAcl($tblZasobId);
 			if (!$tblAcl->hasFieldPerm($tblAcl->getFieldIdByName('ID'), 'R')) {
+				DBG::_('DBG_P', '>2', '!$tblAcl->hasFieldPerm(ID, R)', $tblAcl, __CLASS__, __FUNCTION__, __LINE__);
 				return null;
 			}
 			$ds = $tblAcl->getDataSource();
@@ -405,7 +407,7 @@ if(V::get('DBG_P', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:au
 				$sqlAclFltr = " and {$sqlFltr}";
 			}
 			else {
-				if(V::get('DBG_P', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">!hasAclGroupFields tblAcl (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($tblAcl);echo'</pre>';}
+				DBG::_('DBG_P', '>0', '!hasAclGroupFields tblAcl', $tblAcl, __CLASS__, __FUNCTION__, __LINE__);
 			}
 			$sqlFoundUsers = array_keys($allowedUsers);
 			$sqlFoundUsers = "'" . implode("','", $sqlFoundUsers) . "'";
@@ -414,14 +416,14 @@ if(V::get('DBG_P', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:au
 				where t.`ADM_ACCOUNT` in({$sqlFoundUsers})
 					{$sqlAclFltr}
 			";
-			if(V::get('DBG_P', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">sql (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($sql);echo'</pre>';}
+			DBG::_('DBG_P', '>2', 'sql', $sql, __CLASS__, __FUNCTION__, __LINE__);
 			$res = $db->query($sql) or die("blad zapytania do bazy {$sql}");
 			while ($r = $db->fetch($res)) {
 				$allowedUsersFiltered[$r->ADM_ACCOUNT] = true;
 			}
 			$allowedUsers = $allowedUsersFiltered;
 		}
-		if(V::get('DBG_P', '', $_GET) > 2){echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">allowedUsersFiltered (' . __CLASS__ . '::' . __FUNCTION__ . ':' . __LINE__ . '): ';print_r($allowedUsersFiltered);echo'</pre>';}
+		DBG::_('DBG_P', '>2', 'allowedUsersFiltered', $allowedUsersFiltered, __CLASS__, __FUNCTION__, __LINE__);
 
 		ksort($allowedUsers);
 

+ 3 - 1
SE/se-lib/UserAcl.php

@@ -185,7 +185,9 @@ class UserAcl {
 	}
 
 	public function getTableAcl($tableID) {
-		return TableAcl::getInstance($tableID);
+		$tblAcl = TableAcl::getInstance($tableID);
+		$tblAcl->init();
+		return $tblAcl;
 	}
 
 	/**