|
|
@@ -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;
|
|
|
}
|