Управления доступом к ресурсам по сложным правилам.
Добрый день. Нужно разработать систему контроля доступа для существующего проекта. Если кратко, нужно разграничение прав доступа к таблицам БД, но на основе сложных бизнес правил, иначе просто взял бы RBAC и нет проблем.
Привожу пример:
Есть таблица Y. Юзер1 может:
Читать и редактировать записи таблицы Y:
НО только записи, где Y.group = 1, 2, 3;
При чем:
Если Y.group = 1 :
Y.type может принимать только значение 3
И при Y.type = 3:
Y.status может принимать только значениеe 1 ИЛИ 2
и т. д. для group 2, 3
Y.group(1) => Y.type(3) => Y.status(1) ИЛИ Y.status(2)
Права будут хранится в MySQL и нужно будет сделать веб гуй для редактирования правил, т.е. правила нельзя статично захардкодить. Язык - PHP.
Может подскажите как лучше спроектировать? Или, что еще лучше, готовое решение.
Из того, что я нашел - ABAC выглядит достаточно похоже на то, что мне нужно, но:
- Как в нем выразить сложное условие из примера.
- Для php есть всего одна реализация и та очень куцая.