Вначале расскажу о моем вопросе.
- Отдельные объекты могут читать Разрешения.
- Если пользователь не может проверить проверку чтения, они не могут видеть этот экземпляр.
Задача связана с введением Lucene и выполнением поиска, который просто возвращает список совпадающих экземпляров сущностей. Затем мой код должен будет фильтровать объекты по одному. Этот подход крайне неэффективен, поскольку существует ситуация, когда пользователь может видеть только небольшое меньшинство и проверять многие, чтобы вернуть несколько, менее чем идеально.
Что подходит или как разработчики решат эту проблему - помня, что индексирование и поиск выполняются с использованием Lucene?
ИЗМЕНИТЬ
Определения
- Пользователь может принадлежать многим группам.
- В роли может быть много групп - это может измениться.
- Разрешение имеет роль - (косвенность).
- X может иметь разрешение на чтение.
- Можно изменить определение роли в любое время.
Индексация
- Добавление набора групп (расширение Permmission) во время индекса может привести к тому, что определение перестает синхронизироваться, когда меняется список групп-членов для ролей.
- Я надеюсь избежать необходимости переиндексации X всякий раз, когда изменяется определение прав/роли.
Проверка безопасности
- Чтобы пройти проверку прав, Пользователь должен принадлежать группе, входящей в набор групп, принадлежит роли для данного Разрешения.