Разграничение доступа к сущности
-
HakimzyanovA
- Сообщения: 170
- Зарегистрирован: 27 фев 2017, 13:22
- Имя: Алексей Хакимзянов
- Откуда: Россия
Разграничение доступа к сущности
Здравствуйте!
Есть некая сущность, содержащая id предприятия и далее некоторые данные. Хотелось бы иметь возможность разграничить доступ пользователей по трем категориям: к записям с id=предприятие1, id=предприятие2, ко всем записям.
т.е. в настройке доступа к сущности добавить еще опциональное условие <имя поля>=<значение> для фильтрации записей.
Есть некая сущность, содержащая id предприятия и далее некоторые данные. Хотелось бы иметь возможность разграничить доступ пользователей по трем категориям: к записям с id=предприятие1, id=предприятие2, ко всем записям.
т.е. в настройке доступа к сущности добавить еще опциональное условие <имя поля>=<значение> для фильтрации записей.
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Разграничение доступа к сущности
Опишите, пожалуйста, саму ситуацию, зачем вам это понадобилось, а я уже подумаю над реализацией.
-
HakimzyanovA
- Сообщения: 170
- Зарегистрирован: 27 фев 2017, 13:22
- Имя: Алексей Хакимзянов
- Откуда: Россия
Re: Разграничение доступа к сущности
1. Несколько управляющих компаний (УК), на домах которых установлены приборы учета.
2. Отдельное подразделение, обслуживающее приборы учета УК из п.1
3. Несколько сущностей, в которых учет приборов и действий с ними.
В силу ряда причин сотрудникам УК желательно видеть только приборы своей УК. Сотрудникам обслуживающего подразделения - приборы всех УК.
Сейчас конечно можно сделать фильтр для удобства работы только со своей УК, а требуется именно ограничить возможность доступа к чужим данным.
Имхо - сценарий типичен. Например, отдельному менеджеру логично иметь доступ только к тем клиентам, которых он обслуживает, а не ко всей клиентской базе фирмы. Во избежание
.
2. Отдельное подразделение, обслуживающее приборы учета УК из п.1
3. Несколько сущностей, в которых учет приборов и действий с ними.
В силу ряда причин сотрудникам УК желательно видеть только приборы своей УК. Сотрудникам обслуживающего подразделения - приборы всех УК.
Сейчас конечно можно сделать фильтр для удобства работы только со своей УК, а требуется именно ограничить возможность доступа к чужим данным.
Имхо - сценарий типичен. Например, отдельному менеджеру логично иметь доступ только к тем клиентам, которых он обслуживает, а не ко всей клиентской базе фирмы. Во избежание
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Разграничение доступа к сущности
Доступ разграничивается путем назначения пользователя (или группы пользователей) на запись. Почему такой вариант не подходит?
-
HakimzyanovA
- Сообщения: 170
- Зарегистрирован: 27 фев 2017, 13:22
- Имя: Алексей Хакимзянов
- Откуда: Россия
Re: Разграничение доступа к сущности
Бывают ситуации, когда пользователь должен иметь возможность изменять только часть данных, в моем примере только по своей УК. А бывают, когда конкретному пользователю вообще не положено видеть часть записей в сущности - ПДн, банковская тайна и т.д.
Есть технические сложности с реализацией данной функциональности или сомнения в ее необходимости?
Есть технические сложности с реализацией данной функциональности или сомнения в ее необходимости?
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Разграничение доступа к сущности
И то и другое. Сейчас же можно выставить доступ "показывать только назначенные" и пользователь будет видеть те записи, которые назначены только на него. Я не понимаю чем этот вариант не подходит.
-
HakimzyanovA
- Сообщения: 170
- Зарегистрирован: 27 фев 2017, 13:22
- Имя: Алексей Хакимзянов
- Откуда: Россия
Re: Разграничение доступа к сущности
возможно мы друг друг друга не поняли 
есть сущность table с записями
company_id house_id
1 1
1 2
2 1
2 2
группы пользователей: group1,group2
сейчас возможно:
1. дать group1 полные права, а group2 - только для чтения
2. разделить table на две сущности, перенести нужные записи и дать доступ group1 и group2 к своей сущности
а хотелось бы, чтобы пользователи из group1 при просмотре table видели и могли редактировать только записи с company_id=1, а пользователи из group2 - только записи с company_id=2.
есть сущность table с записями
company_id house_id
1 1
1 2
2 1
2 2
группы пользователей: group1,group2
сейчас возможно:
1. дать group1 полные права, а group2 - только для чтения
2. разделить table на две сущности, перенести нужные записи и дать доступ group1 и group2 к своей сущности
а хотелось бы, чтобы пользователи из group1 при просмотре table видели и могли редактировать только записи с company_id=1, а пользователи из group2 - только записи с company_id=2.
-
HakimzyanovA
- Сообщения: 170
- Зарегистрирован: 27 фев 2017, 13:22
- Имя: Алексей Хакимзянов
- Откуда: Россия
Re: Разграничение доступа к сущности
приведу еще пример. Представьте "Руководитель" в банке 
Есть сущность, где хранятся данные о клиентах, их счетах и остатках. Если два филиал1 и филиал2.
Сотрудники каждого филиала должны иметь возможность видеть только тех клиентов, у которых счета открыты в своем филиале. И не иметь возможности видеть счетов других филиалов.
А например директор банка - должен видеть счета всех клиентов.
Есть сущность, где хранятся данные о клиентах, их счетах и остатках. Если два филиал1 и филиал2.
Сотрудники каждого филиала должны иметь возможность видеть только тех клиентов, у которых счета открыты в своем филиале. И не иметь возможности видеть счетов других филиалов.
А например директор банка - должен видеть счета всех клиентов.
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Разграничение доступа к сущности
Давайте рассмотрим вариант с банком. Я бы сделал так:
Филиал - сущность верхнего уровня
Счета - вложенная сущность к филиалу.
То есть имеем следующую структуру:
- Филиал
- - Счета
В сущности Филиал есть поле с типом "Пользователи" где мы назначаем пользователей на каждый филиал и устанавливаем права "Показывать только назначенные". Соответственно Счета, или любые другие под-сущности будут отображаться только с того филиала, на который назначен пользователь.
В сущности "Счета" может и не быть поля с типом "Пользователи" так как мы уже ограничили доступ в сущности верхнего уровня.
Филиал - сущность верхнего уровня
Счета - вложенная сущность к филиалу.
То есть имеем следующую структуру:
- Филиал
- - Счета
В сущности Филиал есть поле с типом "Пользователи" где мы назначаем пользователей на каждый филиал и устанавливаем права "Показывать только назначенные". Соответственно Счета, или любые другие под-сущности будут отображаться только с того филиала, на который назначен пользователь.
В сущности "Счета" может и не быть поля с типом "Пользователи" так как мы уже ограничили доступ в сущности верхнего уровня.
-
HakimzyanovA
- Сообщения: 170
- Зарегистрирован: 27 фев 2017, 13:22
- Имя: Алексей Хакимзянов
- Откуда: Россия
Re: Разграничение доступа к сущности
Попробовал, если в сущности "Филиал" создать поле с типом "Пользователи", то действительно получается ограничить доступ к подсущностям, назначая пользователей в филиал.
А если создать в сущности филиал поле с типом "Группа пользователей", то список для заполнения этого поля при занесении данных пустой (см картинку). То есть нужно назначить на филиал именно всех пользователей из группы, а не просто саму группу?
А что, если в Филиале 1 требуется из числа сотрудников выделить тех, кто кроме обычных, обслуживает счета VIP-клиентов, на которых больше 100 тугриков? Ну а остальным такие счета видеть не нужно, конечно
Вот вот я и предлагаю сделать опционально в настройке доступа для сущности дополнительный фильтр, накладываемый администратором для группы пользователей, в данном случае:
Группа: сотрудники филиала1: Сумма<100
Группа: сотрудники филиала1 vip: нет фильтра
а можно еще ограничить доступ к личному счету директора банка ну и так далее.
то есть нужно дать возможность гибко подстроить систему под требования ИБ в конкретной организации.
А если создать в сущности филиал поле с типом "Группа пользователей", то список для заполнения этого поля при занесении данных пустой (см картинку). То есть нужно назначить на филиал именно всех пользователей из группы, а не просто саму группу?
А что, если в Филиале 1 требуется из числа сотрудников выделить тех, кто кроме обычных, обслуживает счета VIP-клиентов, на которых больше 100 тугриков? Ну а остальным такие счета видеть не нужно, конечно
Вот вот я и предлагаю сделать опционально в настройке доступа для сущности дополнительный фильтр, накладываемый администратором для группы пользователей, в данном случае:
Группа: сотрудники филиала1: Сумма<100
Группа: сотрудники филиала1 vip: нет фильтра
а можно еще ограничить доступ к личному счету директора банка ну и так далее.
то есть нужно дать возможность гибко подстроить систему под требования ИБ в конкретной организации.