Дополнительно права доступа к данным сервера можно ограничить пространственным фильтром, состоящим из одного или нескольких полигональных объектов, хранящихся в одном из слоев на сервере. В этом случае при наличии прочих прав пользователь имеет доступ только к тем графическим объектам, которые удовлетворяют условию пространственного фильтра.
Предупреждение | |
---|---|
Для ZuluGIS Online и ZuluGIS Mobile (а также всех zws слоев) необходимо дополнительно включить использование пространственного фильтра в настройках ZuluServer. |
Рисунок 21. Пример пространственного фильтра
Информация о пространственных ограничениях доступа к данным той или иной папки, содержится в секциях restricted-area файла .zsaccess, расположенного в этой же папке. При этом ограничения распространяются на все данные этой папки.
В секции restricted-area параметрами user и group указывается, на кого распространяется пространственное ограничение. Параметры user и group могут встречаться в каждой секции restricted-area многократно.
Если секция restricted-area не содержит параметров user или group, то указанное пространственное ограничение относится к любому пользователю, обратившемуся к данным.
Параметр criterium задает условие пересечения с полигональным объектом и может принимать следующие значения:
Таблица 5. Значения criterium
Значение |
Описание |
---|---|
full-inside |
объект полностью расположен внутри полигона |
full-or-part-inside |
объект полностью или частично расположен внутри полигона |
full-outside |
объект полностью расположен вне полигона |
full-or-part-outside |
объект полностью или частично расположен вне полигона |
Если критерий не указан, по умолчанию принимается full-inside.
Секция region, входящая в секцию restricted-area, описывает местонахождение полигонов для фильтра.
Параметр layer секции region содержит полный или относительный (относительно данной папки) путь к слою, в котором находятся полигональные объекты.
Параметр id секции region содержит список ключей ID (разделенных пробелами) полигональных объектов из указанного слоя. Параметр id может встречаться в каждой секции region многократно.
Каждая секция restricted-area может содержать несколько секций region.
Пользователь или группа могут входить в несколько секций restricted-area. В этом случае полигоны, составляющие область ограничения для данного пользователя, объединяются, а критерием пересечения с объединенной областью будет критерий из последней секции restricted-area, относящейся к данному пользователю.
Предупреждение | |
---|---|
Оставить область видимой для пользователя, но при этом просто ограничить редактирование, можно с помощью параметра allow draw, добавленного в секцию restricted-area. |
# Фрагмент файла .zsaccess <restricted-area> user ivanov <region> layer ..\regions\district1.zl id 3 7 </region> <region> layer ..\regions\district2.zl id 1 </region> criterium full-inside allow draw </restricted-area> <restricted-area> user ivanov sidorov user petrov <region> layer ..\regions\district1.zl id 10 </region> criterium full-inside </restricted-area> <restricted-area> group restricted <region> layer ..\regions\district2.zl id 5 7 id 6 </region> criterium full-outside </restricted-area>