|
|
@@ -41,9 +41,16 @@ class Api_Wfs_GetFeature {
|
|
|
if (!empty($nestedFields)) {
|
|
|
$aclFields = array_unique(array_merge($aclFields, array_keys($nestedFields)));
|
|
|
}
|
|
|
+ if (in_array('*', $aclFields)) {
|
|
|
+ $aclFields = array_filter($aclFields, function ($fieldName) { return ( '*' !== $fieldName); });
|
|
|
+ $allAclFields = array_values($acl->getFieldListByIdZasob());
|
|
|
+ $allAclFields = array_filter($allAclFields, function ($fieldName) use ($acl) {
|
|
|
+ return $acl->canReadField($fieldName);
|
|
|
+ });
|
|
|
+ if ($allAclFields) $aclFields = array_unique(array_merge($aclFields, $allAclFields));
|
|
|
+ }
|
|
|
DBG::log([$aclFields, $nestedFields], 'array', 'convertOgcPropsRecurse: splited to acl fields and nested fields');
|
|
|
|
|
|
- // TODO: convert '*' to fields (only local?)
|
|
|
foreach ($aclFields as $fieldName) {
|
|
|
if (!$acl->canReadField($fieldName)) throw new Exception("Access Denied to read field '{$fieldName}' from '" . $acl->getNamespace() . "'");
|
|
|
}
|