Yii модуль srbac, Часть 1
Вторая из серии статей посвященных изучению yii.
Сегодня мы начнем разбираться в модуле srbac. Данный модуль добавляет в yii графический интерфейс для работы с ролями пользователей.
Начнем:
Для начала скачаем модуль по ссылке выше. Сегодня мы займемся его установкой и настройкой.
На данном этапу у вас уже должен быть установлен yii, настроено подключение к БД. Я думаю это очень простые операции и они не вызовут у вас затруднений.
После того, как вы скачали модуль, копируем его в папку protected/modules. Теперь нам нужно создать таблицы необходимые для AuthManager, так как все роли у нас будут хранится в базе данных.
Для этого идем в директорию framework/web/auth/, там хранится схема нужных нам таблиц «schema.sql«. Просто копируем все содержимое в phpmyadmin и выполняем запрос. У нас в базе появились 3 новых таблицы:
- AuthAssignment - Связывает роль с пользователем
- AuthItemChild – Хранит иерархию ролей, задач и операций
- AuthItem – Сами роли, задачи и операции
Теперь создаем таблицу User, в ней будет хранится информация для авторизации пользователей на сайте, из обязательеных полей только id пользователя, остальное на ваш вкус. И конечно не забываем создать модель «User» в директории protected/models.
Ну вот и закончили с созданием таблиц и моделей. Перейдем непосредственно к настройке модулей.
Первое, что мы сделаем это настроим AuthManager. В файле protected/config/main.php добавляем следующие строки:
'authManager' => array(
'class' => 'CDbAuthManager',
'connectionID' => 'db',
'itemTable' => 'AuthItem',
'itemChildTable' => 'AuthItemChild',
'assignmentTable' => 'AuthAssignment',
'defaultRoles' => array('Guest'),
),
В данных строках мы указали, какими таблицами пользоваться модулю AuthManager, и назначили роль по умолчанию не авторизированным пользователям.
Теперь добавим в автозагрузку класс srbac.
// autoloading model and component classes
'import'=>array(
'application.models.*',
'application.components.*',
'application.modules.srbac.controllers.SBaseController',
),
Теперь перейдем непосредственно к настройке модуля srbac.
'srbac' => array(
// Модель для работы с таблицой пользователей
'userclass' => 'User',
// Уникальный идентификатор пользователя
'userid' => 'id',
// Название поля содержащего имя пользователя
'username' => 'username',
// В режиме отладки все пользователи могут управлять правилами доступа
'debug' => true,
// Колличество пунктов выводимых на 1 странице
'pageSize' => 20,
// Название роли супер пользователя
'superUser' => 'Authority',
// Файл стилей для модуля
'css' => 'srbac_red.css',
// Сообщение для не авторизированных пользователей, попытавшихся получить доступ к закрытым для них разделам сайта
'notAuthorizedView' => 'application.messages.unauthorized',
// Операции разрещенные польщователю
'userActions' => array('Show','View','List','Index'),
//
'listBoxNumberOfLines' => 15,
// Путь к картинкам
'imagesPath' => 'images',
//
'imagesPack' => 'noia',
//
'iconText' => true,),
После настройки переходим на страницу установки index.php?r=srbac/authItem/install, и не забудьте удалить srbac\views\authitem\install.
На этом сегодня все, модуль настроен и работает, в следующей статье мы напишем авторизацию и регистрацию для пользователей.
- Yii
Категории
- Yii, Модуль SRBAC часть 2. Пишем регистрацию.
- Yii небольшое описание и полезные ссылки.
- Выбор PHP фреймворка. Сравнение CodeIgniter, Kohana, Yii.

6 коммент.
Нихау (: Хотелось бы как можно скорее лицезреть вторую часть туториала!!!
Reply
Ой постараюсь, сейчас завалы просто ужас какие. Но постараюсь в ближайшее время написать.
Reply
Сделала все по руководству, но когда запускаю index.php?r=srbac/authItem/install почему-то вываливается ошибка
Unable to resolve the request «srbac/authItem/install».
Подскажите, почему так.
Reply
а как у вас настроен «UrlManager»?
Reply
CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘geo.items’ doesn’t exist
А какая структура должна быть у таблиц?
имеется дамп?
Reply
Извиняюсь, не заметил
framework/web/auth/,
В TFM почему-то этого нету
Reply