foma19
Новичок
Система управления правами доступа
Решил реализовать систему управления правами доступа. Идея такая: строим дерево всего сайта. где будут динамические записи(проекты и задачи к ним, например), то мы добавляем в это дерево айдишники созданных записей. вот что примерно будет получатся:
<ul>
<li>Сайт
<ul>
<li>Статические страницы
<ul>
<li>Главная</li>
<li>О компании</li>
<li>Контактная информация</li>
</ul>
</li>
<li>Проекты
<ul>
<li>Проект1</li>
<li>Проект2
<ul>
<li>Задачи
<ul>
<li>Задача1
<ul>
<li>Комментарии
<ul>
<li>Комментарий1</li>
<li>Комментарий2</li>
<li>Комментарий3</li>
<li>Комментарий4</li>
</ul>
</li>
</ul>
</li>
<li>Задача2</li>
</ul>
</li>
</ul>
</li>
<li>Проект3</li>
</ul>
</li>
</ul>
</li>
</ul>
Так же есть таблица с правами.
id | group_id | user_id | tree_id | rights
поле rights это будет битовая маска: 01001 что-то вроде этого
Забиваем эту таблицу правами и если нам нужно допустим узнать права на задание с id 10, например, то мы вытаскиваем задание, смотрим id в дереве и рекурсивно берем права и применяем "&". в итоге получим результирующие права к этой задаче.
Как считаете стоит вообще реализовывать такую систему? Или подскажите как проще реализовать разграничение к любому объекту сайта? будь то весь сайт или определенная запись в таблице с задачами или проектами
Решил реализовать систему управления правами доступа. Идея такая: строим дерево всего сайта. где будут динамические записи(проекты и задачи к ним, например), то мы добавляем в это дерево айдишники созданных записей. вот что примерно будет получатся:
<ul>
<li>Сайт
<ul>
<li>Статические страницы
<ul>
<li>Главная</li>
<li>О компании</li>
<li>Контактная информация</li>
</ul>
</li>
<li>Проекты
<ul>
<li>Проект1</li>
<li>Проект2
<ul>
<li>Задачи
<ul>
<li>Задача1
<ul>
<li>Комментарии
<ul>
<li>Комментарий1</li>
<li>Комментарий2</li>
<li>Комментарий3</li>
<li>Комментарий4</li>
</ul>
</li>
</ul>
</li>
<li>Задача2</li>
</ul>
</li>
</ul>
</li>
<li>Проект3</li>
</ul>
</li>
</ul>
</li>
</ul>
Так же есть таблица с правами.
id | group_id | user_id | tree_id | rights
поле rights это будет битовая маска: 01001 что-то вроде этого
Забиваем эту таблицу правами и если нам нужно допустим узнать права на задание с id 10, например, то мы вытаскиваем задание, смотрим id в дереве и рекурсивно берем права и применяем "&". в итоге получим результирующие права к этой задаче.
Как считаете стоит вообще реализовывать такую систему? Или подскажите как проще реализовать разграничение к любому объекту сайта? будь то весь сайт или определенная запись в таблице с задачами или проектами
