Мы строим / проектируем новое поколение наших продаж / заказов / CRM
система, которая включает в себя такие объекты, как клиент (иерархия клиентов
в частности), заказ, промоакция, ... Каждый пользователь системы
должен был назначить одного или нескольких клиентов. Пользователи должны быть организованы
в форме организационной иерархии. Система должна контролировать
доступ к связанным с клиентом объектам в соответствии с текущим пользователем
Настройки. Проблема в том, что он должен работать иерархически в
как для клиентов, так и для пользователей. Это означает, что если пользователь имеет
назначенный клиент X из иерархии, он также должен иметь возможность
работать со всеми детьми этого клиента. И по аналогии с
пользователи - менеджер должен иметь возможность работать со всеми связанными с клиентом
лица, которые разрешены для его подчиненных.
Я бы хотел использовать Rhino Security для ограничения доступа к операциям
над сущностями в системе, но я не уверен, что это подходит для
этот сложный сценарий. Мое текущее состояние ума таково, что оно должно быть
возможно, если я смогу разработать какой-то фоновый процесс (возможно,
на основе служебной шины), который сможет генерировать группы объектов для
все новые / измененные объекты. Однако это означает, что будет довольно
огромное количество групп сущностей без каких-либо хороших намерений.
Не будет таких групп, как «клиенты, которые не оплачивают счета» и т. Д., Но
просто группы, такие как «клиенты для пользователя X», которые будут содержать все
разрешенные клиенты. Там будут некоторые другие операции, которые будут
контролируется гораздо более Rhino Security-стандартным способом, как "только
Менеджеры могут сделать клиента недействительным ».
Буду признателен за любые мысли по этой проблеме ...