Yii модуль srbac, Часть 1

Вторая из серии статей посвященных изучению yii.

Сегодня мы начнем разбираться в модуле srbac. Данный модуль добавляет в yii графический интерфейс для работы с ролями пользователей.

SRBAC

Начнем:

Для начала скачаем модуль по ссылке выше. Сегодня мы займемся его установкой и настройкой.

На данном этапу у вас уже должен быть установлен 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.

На этом сегодня все, модуль настроен и работает, в следующей статье мы напишем авторизацию и регистрацию для пользователей.
Теги:
srbac
Добавлено: 02 Марта 2015 19:29:30 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...