Пример задачи с использованием прав доступа

Материал из CMS Sitebill Wiki
Версия от 10:54, 10 сентября 2013; Kondin (обсуждение | вклад) (Новая страница: «Предположим, что нам нужно создать компонент – user_account (он будет определять у нас набор ф…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Предположим, что нам нужно создать компонент – user_account (он будет определять у нас набор функций для личного кабинета пользователя). Причем для группы риэлторов (realtor) будет доступны функции добавления объявления (add_adv), удаления объявления (remove_adv).

А для группы директор агентства (director) будут доступны все функции риэлтора, но еще дополнительно функция создания и удаления новых риэлторов (add_user, remove_user)

Для этого нам потребуется создать функции: add_adv, remove_adv, add_user, remove_user. Создать компонент user_account и добавить в него вышеперечисленные функции.

Создать группы пользователей realtor, director.

Затем зайти в структуру прав доступа группы и назначить галочками доступы к соответствующим функциям.

Группа Функции
director add_adv, remove_adv, add_user, remove_user
Realtor add_adv, remove_adv

Таким образом мы построили матрицу прав доступа.

Чтобы воспользоваться такой матрицей в программном коде, нам нужно вызвать функцию проверки прав доступа из класса Permission.

$this->permission = new Permission();
if ( $this->permission->get_access($user_id, 'user_account', 'add_user') ) {
//тут код который разрешен для выполнения этому пользователю
}