Yii модуль srbac, Часть 1 | 2Coders. Блог 2-х web-разработчиков
Автор d4rkr00t Дата: 20 Ноябрь 2009

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.

На этом сегодня все, модуль настроен и работает, в следующей статье мы напишем авторизацию и регистрацию для пользователей.



    6 коммент.

  1. alexy4b:

    Нихау (: Хотелось бы как можно скорее лицезреть вторую часть туториала!!!

    Reply

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

    Reply

  3. Наталья:

    Сделала все по руководству, но когда запускаю index.php?r=srbac/authItem/install почему-то вываливается ошибка
    Unable to resolve the request «srbac/authItem/install».
    Подскажите, почему так.

    Reply

  4. а как у вас настроен «UrlManager»?

    Reply

  5. CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘geo.items’ doesn’t exist

    А какая структура должна быть у таблиц?
    имеется дамп?

    Reply

  6. Извиняюсь, не заметил :)
    framework/web/auth/,
    В TFM почему-то этого нету

    Reply

Оставить комментарий или два

Это не спам.