WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Советы » Управление уровнями прав доступа

Управление уровнями прав доступа


Дата публикации: 08-04-2008

Типичное приложение обычно имеет два уровня прав доступа: пользователя и администратора. Однако в некоторых приложениях необходим более сложный механизм управления доступом. Например, текстовые базы данных требуют множества уровней прав доступа.

  • Супервизор может изменять в системе все, что требуется, может модифицировать пользовательскую систему и т. д.

  • Редактор может редактировать статьи и другую информацию, а также утверждать тексты, предлагаемые авторами.

  • Автор может создавать статьи и другие виды текстов, вносить их на рассмотрение редакторов, но не может сам утверждать тексты;

  • Пользователь располагает лишь правами доступа для чтения.

Поскольку вы знаете текущего зарегистрированного пользователя и можете идентифицировать его по уникальной строке ($uid), то несложно написать функции, которые будут включать пользователя в определенную группу и предоставлять ему те или иные права доступа в зависимости от того, что это за группа. Библиотека PHPLib располагает встроенными функциями для выполнения этих действий.

Для того чтобы можно было работать с классом Perm, вы должны добавить еще один элемент к вызову функции page_open(). Библиотека PHPLib по умолчанию предоставляет реализацию класса Perm с именем Example_Perm. Но вы уже знаете, как следует поступить, чтобы можно было использовать все возможные функции, как привести систему в соответствие со своими потребностями, - необходимо создать собственный производный клаcс в файле local.inc.

В листинге 6.6 приведен пример использования класса Perm. Здесь реализовано несколько больше функциональных возможностей, чем действительно необходимо: наш класс позволяет выходить из системы и повторно входить в нее с другим именем пользователя (это позволяет более наглядно продемонстрировать механизм уровней прав доступа в действии); эталонный пользователь PHPLib (имя пользователя kris, пароль test) получает привилегии администратора (admin), и если вы войдете в систему под этим именем, сценарий выведет сообщение "Добро пожаловать, администратор". Поскольку в дистрибутиве библиотеки PHPLib задан единственный пользователь - администратор, - нужно создать и других пользователей, чтобы увидеть, как выглядит соответствующая страница для посетителей с иным уровнем доступа.

Листинг 6.6. Работа с классом Perm

page_open(array("sess" => " Example_Session", "auth" => "Example_Auth ", "perm" => "Example_Perm"));

if(isset($mode) && $mode == "reload")

{

$auth->unauth();

print("Вы успешно вышли из системы.

");

printf('Если хотите, вы можете войти повторно.',

е$sess->url(basename($PHP_SELF)));

}

else

{

if($perm->have_perm("admin"))

{

print("Добро пожаловать, администратор.

");

print('Вы вошли в систему с уровнем доступа "admin".

');

}

else

{

printf(Вы вошли в систему с уровнем доступа "%s".

',

е$auth->auth["perm"]);

}

printf("Ваше имя: $s

", $auth->auth["name"]);

printf('Log out',

е$sess->url(basename($PHP_SELF)."?mode=reload"));

}

page_close();

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта



Случайная цитата

Неизвестный автор:

"Решение всех жизненных проблем находится в интернете. Надо только уметь хорошо искать."

Опрос

Как Вам новый дизайн сайта?

Отлично
Неплохо
Нормальный
Ужасно