Я пытался создать внутренний портал персонала для нашей компании. Существуют отделы, классы работы, рабочие области, роли (пользователь, редактор, администратор, супер-админ и т. Д.) И специальные группы (руководители и т. Д.) Для группировки пользователей.Расширенный таргетинг, как Facebook Sharing (Flexible ACL) DB Design
Пользователь должен иметь один (только один) отдел. Пользователь должен иметь один (только один) класс работы. Пользователь должен работать в минимальной области. Пользователь должен иметь одну (только одну) роли. У пользователя может быть одна или несколько групп.
Рабочие классы и роли являются иерархическими (класс или роль могут быть унаследованы от другого), а другие нет.
Пользователи будут видеть только разрешенные меню и разрешенные маршруты.
Пользователь также будет выбирать, какие пользователи могут просматривать его при публикации нового контента. например: Комбинация 1: (отдел ИТ или финансов) и (класс работы - один из 9,10,11) и (Площадь одна из 1,5,8) и (Эксклюзивная специальная группа - одна из 1,5, 8) кроме пользователя id = 1 Комбинация 2: (отдел кадров) и (класс работы - 11), а user_id = 3,4,5
Комбинации могут быть связаны как И/ИЛИ между собой, такие как комбинация 1 и комбинация 2
Таким образом, будет много контента, и каждый контент будет иметь разные групповые разрешения. Я пытаюсь создать схему БД, но очень сложно получить все содержимое, видимое для входа в систему. Сериализованные данные были бы хороши для сохранения наборов комбинаций в db, но с сериализованными данными это было бы невозможно. Существует ли преимущество использования MongoDB для этой проблемы? Как я могу сохранить комбинации групповых/пользовательских разрешений в таблицах?
Я исследовал множество примеров ACL и RBAC, но не могу найти оптимальное решение. Пожалуйста помоги.
Btw, я использую Laravel Framework.
Спасибо.
Возможный дубликат [Complex Правша системы: ACL, RBAC и многое другое, что] (http://stackoverflow.com/questions/13580702/complex-righty-system-acl-rbac- and-more-what) –