07.06 2008

В теории всё просто

Автор: admin | Категории: Статьи


В теории всё просто

В теории всё просто. Но на практике, документации и примеров по этой теме практически нет (надеюсь, это скоро изменится). Основные источники информации (на русском): Аутентификация и авторизация и RBAC и описание ролей в файле. На английском хороших и подробных примеров, к сожалению, я не нашел. Примечание. Очень советую прочитать эти статьи, прежде чем переходить к моему примеру. Когда я первый раз решил использовать RBAC, то выяснилось, что есть множество нюансов, которые приходится учитывать при работе с этой библиотекой. Ничего запредельно сложного и недоступного для понимания, но «ковырялся» я довольно долго В этой статье мы рассмотрим пример создания несложной системы управления пользователями (идея взята из одного web приложения). Постановка задачи. Есть три типа пользователей. Обычный (user) – может создавать и редактировать свои данные (например, список контактов) и изменять свои логин/пароль. Администратор (admin) – может создавать новых пользователей, но не может изменять их данные. Он может изменить свои собственные логин и пароль, но не может изменить роль. Суперпользователь (root) – может выполнять любые операции с пользователями. Ни admin, ни root не имеют доступа к персональным данным пользователя (которые он создаёт при работе с приложением). Примечание. Чтобы сократить объем кода, я урезал набор правил. Но, думаю, вы без особого труда сможете его дополнить. Главное понять идею и принцип работы. Шаг первый. Выбираем тип хранилища для ролей и операций. Для этих целей Yii позволяет использовать PHP файл (CPhpAuthManager) или базу данных (CDbAuthManager). Если вы предполагаете, что количество пользователей будет большим, то лучше использовать БД. Но для знакомства с библиотекой лучше использовать PHP файл, т. к. читать его легче. К тому же перейти от одного типа хранилища к другому совсем несложно. Для того, чтобы Yii «узнал» о вашем выборе, в массив с настройками (config/main. php) нужно добавить следующий элемент.

Понравилась статья? Получай обновления и будь всегда в курсе событий!
Подпишись на RSS или
blog comments powered by Disqus