2014-11-18 4 views
0

У меня возникли проблемы с внедрением acl. У меня есть следующие ужетаблица контроля доступа с несколькими уровнями иерархии

таблицы: пользователи
ID

стола: роли
ID
роль

стол: user_roles
идентификатор
пользователя _id
ROLE_ID

таблицу: разрешения
ID
разрешений

таблице: role_permissions
ID
ROLE_ID
permission_id

стол: user_permissions
ID
user_id
permission_id

при входе пользователя, роли выбираются и на основе этих ролей, разрешений выбираются затем сохраняются в массиве разрешений для последующего использования.

, в то время как вышеизложенное работает нормально, добавление мест и магазинов привело меня в замешательство.

стол: Места
ID
расположение

стол: магазины
ID
магазин

так, в основном, пользователь может иметь общую роль, отведенную:
глобальный администратор, g ЛОБАЛЬНЫЙ персонал
также может стать местом администратора или персоналом
затем также может стать магазином администратор или персонал

магазин расположены в месте
мест находятся в ведении глобального офисом

сейчас, как мне интегрировать местоположения и магазины с существующим контролем доступа?

ответ

2

Вы можете соединить Store и User.User, и все разрешения, относящиеся к определенному магазину, могут быть сохранены здесь.

Существует трехкомпонентные отношения между ними, Store, User и Permission Теперь, магазин и пользователя есть многие ко многим отношений. В таблице ассоциаций, Store_User, вы можете связать таблицу Permission. Это гарантирует, что каждый магазин имеет определенный набор разрешений для каждого пользователя.

Это должно объяснить подробнее:

enter image description here

+0

не думать об этом. попробуем это и посмотрим, сработает ли это, спасибо. –

Смежные вопросы