TssDragon
Новичок
Здравствуйте, Господа, есть очередной вопрос, требуется помощь ![Smile :) :)](/talk/styles/default/xenforo/smilies/smile.png)
Необходимо реализовать права доступа к данным для групп пользователей, при этом, у данных есть области видимости.
Пояснение:
Есть множество объектов (карточки объектов (компании, люди, счета и так далее) - в базе это разные таблицы (ну, логично же, да?
) ), у каждого объекта есть поле "scope" - область видимости. Далее, есть таблица с областями - древовидная структура. Есть таблица с группами пользователей. Есть таблица соотношения групп и областей (в каждой группе может быть n-ое количество областей и они могут пересекаться). Есть таблица соотношения пользователей и групп (у одного пользователя может быть несколько групп).
В таком виде все работает.
Возникла необходимость прикрутить права доступа (чтение / запись) к данным на группы. При этом, если пользователь в нескольких группах и конкретная область видимости пересекается, то необходимо брать максимальные права из этих групп. И необходимо реализовать возможность пометить данные как удаленные, но физически их не удалять, а оставить доступ к ним только для определенной группы пользователей.
Мои мысли:
а) По удаленным:
Добавить новую область, которая для всех групп, кроме, например, admin, будет запрещена даже к просмотру (то есть, третье право доступа, назовем его deny) и перемещать "удаленные" данные в эту область.
б) По правам:
Просто добавить в таблицу соотношения групп и областей еще один столбец с правами, но возникает вопрос: как в таком случае выводить данные ? Получается, мне надо делать два вида верстки для каждого права? (при просмотре просто вывод, например, как значения ячеек таблицы, а при возможности редактирования вывод как input элементы формы)
Также, возникают вопросы/проблемки, по взаимодействию удаленных данных и прав доступа, пример:
При переносе какой-либо области данных в "удаленную" область, права на просмотр ее группе пользователей, к которой она привязана сохраняются, не могу придумать, как реализовать получение "родительских" прав deny для этой перемещенной области с сохранением прежних прав групп, для последующей возможности восстановления... Да, криво пояснил, не владею слогом красивым, прошу простить![Smile :) :)](/talk/styles/default/xenforo/smilies/smile.png)
Вот, прошу помощи с вопросами и,если есть лучшие варианты, корректировки моих мыслей
![Smile :) :)](/talk/styles/default/xenforo/smilies/smile.png)
Необходимо реализовать права доступа к данным для групп пользователей, при этом, у данных есть области видимости.
Пояснение:
Есть множество объектов (карточки объектов (компании, люди, счета и так далее) - в базе это разные таблицы (ну, логично же, да?
![Smile :) :)](/talk/styles/default/xenforo/smilies/smile.png)
В таком виде все работает.
Возникла необходимость прикрутить права доступа (чтение / запись) к данным на группы. При этом, если пользователь в нескольких группах и конкретная область видимости пересекается, то необходимо брать максимальные права из этих групп. И необходимо реализовать возможность пометить данные как удаленные, но физически их не удалять, а оставить доступ к ним только для определенной группы пользователей.
Мои мысли:
а) По удаленным:
Добавить новую область, которая для всех групп, кроме, например, admin, будет запрещена даже к просмотру (то есть, третье право доступа, назовем его deny) и перемещать "удаленные" данные в эту область.
б) По правам:
Просто добавить в таблицу соотношения групп и областей еще один столбец с правами, но возникает вопрос: как в таком случае выводить данные ? Получается, мне надо делать два вида верстки для каждого права? (при просмотре просто вывод, например, как значения ячеек таблицы, а при возможности редактирования вывод как input элементы формы)
Также, возникают вопросы/проблемки, по взаимодействию удаленных данных и прав доступа, пример:
При переносе какой-либо области данных в "удаленную" область, права на просмотр ее группе пользователей, к которой она привязана сохраняются, не могу придумать, как реализовать получение "родительских" прав deny для этой перемещенной области с сохранением прежних прав групп, для последующей возможности восстановления... Да, криво пояснил, не владею слогом красивым, прошу простить
![Smile :) :)](/talk/styles/default/xenforo/smilies/smile.png)
Вот, прошу помощи с вопросами и,если есть лучшие варианты, корректировки моих мыслей