|
|
@@ -127,7 +127,7 @@ class Api_WfsDataServer extends Api_WfsServerBase {
|
|
|
// get BBox from geom_field (only one geom fld is allowed)
|
|
|
$geomFld = null;
|
|
|
{
|
|
|
- foreach ($fldList as $fldName) {
|
|
|
+ foreach ($fldList as $idZasob => $fldName) {
|
|
|
if ($acl->isGeomField($fldName)) {
|
|
|
$geomFld = $fldName;
|
|
|
}
|
|
|
@@ -198,22 +198,25 @@ if($DBG){echo 'item['.$itemKey.'] ('.$geomFld.')isEmpty('.empty($item->{$geomFld
|
|
|
$featureNode = $dom->createElementNS($wfsNsUri, "{$wfsNs}:{$type}");
|
|
|
$featureMemberNode->appendChild($featureNode);
|
|
|
$featureNode->setAttribute('fid', "{$type}.{$itemKey}");
|
|
|
- foreach ($fldList as $fldName) {
|
|
|
+ foreach ($fldList as $idZasob => $fldName) {
|
|
|
$featureFldNode = $dom->createElementNS($wfsNsUri, "{$wfsNs}:{$fldName}");
|
|
|
- if ($geomFld != null && $geomFld == $fldName) {
|
|
|
- $geomNode = $this->_typeConverter->createGmlFromWkt($item->{$fldName}, $dom);
|
|
|
- if (!$geomNode) continue;
|
|
|
- $featureFldNode->appendChild($geomNode);
|
|
|
- } else {
|
|
|
- $featureFldNode->nodeValue = str_replace('&', '&', $item->{$fldName});
|
|
|
- if (empty($featureFldNode->nodeValue) && '0' !== $featureFldNode->nodeValue) {
|
|
|
- continue;
|
|
|
+ if ($acl->isAllowed($idZasob, 'R', $item)) {
|
|
|
+ if ($geomFld != null && $geomFld == $fldName) {
|
|
|
+ $geomNode = $this->_typeConverter->createGmlFromWkt($item->{$fldName}, $dom);
|
|
|
+ if (!$geomNode) continue;
|
|
|
+ $featureFldNode->appendChild($geomNode);
|
|
|
+ } else {
|
|
|
+ $featureFldNode->nodeValue = str_replace('&', '&', $item->{$fldName});
|
|
|
+ if (empty($featureFldNode->nodeValue) && '0' !== $featureFldNode->nodeValue) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if (!$simple) {
|
|
|
- $idZasob = $acl->getFieldIdByName($fldName);
|
|
|
- // TODO: if ! allowed to 'R' - hide text
|
|
|
- if ($idZasob > 0 && $acl->isAllowed($idZasob, 'W', $item)) {
|
|
|
+ if (!$acl->isAllowed($idZasob, 'R', $item)) {
|
|
|
+ $featureFldNode->setAttributeNS($rootWfsNsUri, "{$rootWfsNs}:allow_read", "false");
|
|
|
+ }
|
|
|
+ if ($acl->isAllowed($idZasob, 'W', $item)) {
|
|
|
$featureFldNode->setAttributeNS($rootWfsNsUri, "{$rootWfsNs}:allow_write", "true");
|
|
|
}
|
|
|
}
|