Ver Fonte

fixed Export for objects (AntAcl)

Piotr Labudda há 8 anos atrás
pai
commit
578cca52a9
1 ficheiros alterados com 30 adições e 2 exclusões
  1. 30 2
      SE/se-lib/Core/AclHelper.php

+ 30 - 2
SE/se-lib/Core/AclHelper.php

@@ -28,8 +28,36 @@ class Core_AclHelper {// Helper class for Acl
 	public static function getFieldPerms($acl) {// TODO: fetch perms for given Acl by namespace
 		// TODO:? cache session or only current request (static)
 		$fieldPerms = array();
-		foreach ($acl->getFields() as $idField => $field) {
-			$fieldPerms[ $field['name'] ] = $field['perms'];
+		// foreach ($acl->getFields() as $idField => $field) {
+		// 	$fieldPerms[ $field['name'] ] = $field['perms'];
+		// }
+		$permsForFields = User::getAcl()->getPermsForTable($acl->getID());
+		foreach ($permsForFields as $idField => $permInfo) {
+			// $permInfo = Array:
+			//     [ID_CELL] => 763
+			//     [CELL_NAME] => ID
+			//     [CELL_LABEL] => Nr
+			//     [CELL_DESC] => Numer sprawy/projektu
+			//     [SORT_PRIO] => 0
+			//     [ID_TABLE] => 636
+			//     [PERM_R] => 12
+			//     [PERM_W] => 3
+			//     [PERM_X] => 7
+			//     [PERM_C] => 4
+			//     [PERM_S] => 0
+			//     [PERM_O] => 0
+			//     [PERM_V] => 0
+			//     [PERM_E] => 1
+			$fieldPerms[ $permInfo['CELL_NAME'] ] = implode('', [
+				($permInfo['PERM_R'] > 0) ? 'R' : '',
+				($permInfo['PERM_W'] > 0) ? 'W' : '',
+				($permInfo['PERM_X'] > 0) ? 'X' : '',
+				($permInfo['PERM_C'] > 0) ? 'C' : '',
+				($permInfo['PERM_S'] > 0) ? 'S' : '',
+				($permInfo['PERM_O'] > 0) ? 'O' : '',
+				($permInfo['PERM_V'] > 0) ? 'V' : '',
+				($permInfo['PERM_E'] > 0) ? 'E' : '',
+			]);
 		}
 		return $fieldPerms;
 	}