Привилегии пользователя на часть карты(слоя)? в виде полигона.

Ответить
boa-ig
Новоприбывший
Сообщения: 3
Зарегистрирован: 23 авг 2021, 06:58
Репутация: 0
Откуда: Тольятти

Привилегии пользователя на часть карты(слоя)? в виде полигона.

Сообщение boa-ig » 23 авг 2021, 07:05

Подскажите пожалуйста.
Есть слои, нужно пользоваетлям разрешить доступ на просмотр и редактирования только части территории в виде полигона.
Т.е. я рисую полигон и пользователь видит(или может редактировать) только то, что есть внутри полигона.

gamm
Гуру
Сообщения: 4046
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1050
Ваше звание: программист
Откуда: Казань

Re: Привилегии пользователя на часть карты(слоя)? в виде полигона.

Сообщение gamm » 23 авг 2021, 07:25

такое можно делать в базе, создав View (виртуальный слой) на основе пространственного запроса.

Ivor
Завсегдатай
Сообщения: 345
Зарегистрирован: 11 дек 2006, 09:46
Репутация: 102
Откуда: Иркутск

Re: Привилегии пользователя на часть карты(слоя)? в виде полигона.

Сообщение Ivor » 23 авг 2021, 08:16

gamm, на просмотр - да, а вот редактировать... Сразу навскидку возникает пара вопросов, которые скорее всего нерешаемы. Например, удаление объектов, лежащих за пределами разрешённой площади. Или изменения, опять же влияющие на объекты вовне.

Аватара пользователя
chet2
Активный участник
Сообщения: 104
Зарегистрирован: 08 дек 2016, 09:46
Репутация: 6

Re: Привилегии пользователя на часть карты(слоя)? в виде полигона.

Сообщение chet2 » 23 авг 2021, 09:01

boa-ig, я создал бы несколько слоев.
Разным пользователям можно было бы редактировать только свои слои.
Далее с помощью sql-запроса я объединил бы все слои в одно представление (view, ”вьюху”) чтобы можно было видеть общую картину.
Это не то что вы спрашивали, просто описал один из вариантов решения вопроса.

gamm
Гуру
Сообщения: 4046
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1050
Ваше звание: программист
Откуда: Казань

Re: Привилегии пользователя на часть карты(слоя)? в виде полигона.

Сообщение gamm » 23 авг 2021, 09:16

Ivor писал(а):
23 авг 2021, 08:16
которые скорее всего нерешаемы
решаемы, для этого в базе придумали триггеры/демоны/хранимые процедуры. Что требует некоторой работы, конечно.

Ivor
Завсегдатай
Сообщения: 345
Зарегистрирован: 11 дек 2006, 09:46
Репутация: 102
Откуда: Иркутск

Re: Привилегии пользователя на часть карты(слоя)? в виде полигона.

Сообщение Ivor » 23 авг 2021, 09:44

gamm, вопрос в том, имеет ли право пользователь своими действиями внутри области менять геометрию за её пределами. На всякие неочевидные мелочи никаких триггеров не напасёшься, и ворочаться это будет очень тяжело.Особенно поддержка топологии.

boa-ig
Новоприбывший
Сообщения: 3
Зарегистрирован: 23 авг 2021, 06:58
Репутация: 0
Откуда: Тольятти

Re: Привилегии пользователя на часть карты(слоя)? в виде полигона.

Сообщение boa-ig » 23 авг 2021, 09:53

Вроде встречал функцию, которую можно встаить в select, а на нее сосздать View, но не помню какая функция.
Если разбросать по разным слоям (таблицам), то во вркемя перемещения по карте нужно будет подгружать из разных таблиц для тех у кого есть доступ на все.
Самый хороший вариант перехватывать select на стадии выполнения и в зависимости от привилегий пользователя добавлять функцию по которой видно только те объекты которые входят внутрь за ранее заданного полигона или пересекают его.
Не пойму как написать такой select (какая функция).
....
можно применять правила (разбить пользователей по ролям, а для ролей присвоить правила)
CREATE [ OR REPLACE ] RULE имя AS ON событие ....
Грубо говоря, правило описывает дополнительные команды, которые будут выполняться при вызове определённой команды для определённой таблицы.

Ivor
Завсегдатай
Сообщения: 345
Зарегистрирован: 11 дек 2006, 09:46
Репутация: 102
Откуда: Иркутск

Re: Привилегии пользователя на часть карты(слоя)? в виде полигона.

Сообщение Ivor » 23 авг 2021, 10:07

boa-ig, а как точно выглядит задача? Может искомое реализуется более простыми методами

boa-ig
Новоприбывший
Сообщения: 3
Зарегистрирован: 23 авг 2021, 06:58
Репутация: 0
Откуда: Тольятти

Re: Привилегии пользователя на часть карты(слоя)? в виде полигона.

Сообщение boa-ig » 23 авг 2021, 10:20

Есть таблица, в ней геометрия в виде полигонов(город) разбитый на 3 района,
Есть пользователь Р1 (район 1), Р2 (район 2), Р3 (район 3).
Нужно:
V1 - Р1 видитвсе района но редактировать только свой
V2 - Р1 видит только район 1 и редактировать может только его
Аналогично по Р2,Р3.
Есть пользователь которим разрешено все по всем районам.
....
таблиц на самом деле больше, то понять на самом простом примере
.....
по сути классическая задача вертикальное/горизонтальное предоставление привилегий.

Ivor
Завсегдатай
Сообщения: 345
Зарегистрирован: 11 дек 2006, 09:46
Репутация: 102
Откуда: Иркутск

Re: Привилегии пользователя на часть карты(слоя)? в виде полигона.

Сообщение Ivor » 23 авг 2021, 10:34

boa-ig, а если просто разделить таблицы по районам?

Ответить

Вернуться в «PostGIS/PostgreSQL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей