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.

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



Теги: ,

Комментарии

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

    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

  7. Здравствуйте,
    немогли бы помочь …

    Не переходит на страницу установки …
    — index.php?r=srbac/authItem/install
    —Unable to resolve the request «srbac/authItem/install».

    в main.php ‘urlManager’ закоментирован
    настройка модуля ‘srbac’ => array(…) идёт сразу после закоментированного ‘urlManager’ .

    Reply

  8. Сорри…
    смог разобраться ….
    Перепутал местами …

    ‘components’=>array(
    ‘authManager’ => array(…)
    )
    ‘modules’=>array(
    ‘srbac’ => array(…)
    )

    Reply

  9. Помогите пожалуйста.
    Все сделал как описано, перешел по ссылке, да вот только кнопка Установить не пашет. И написано, что-то типо:
    Ошибка вкралась в вашу конфигурацию

    Reply

    Max Reply:


    Покажите ошибку. Есть также, уже собранный блог с srbac — https://code.google.com/p/srbac/downloads/detail?name=blog-srbac_1.2_r228.zip&can=2&q=. На его примере, можно посмотреть, как все работает.

    Reply

    Николай Reply:


    Спасибо,разобрался.
    Были не правильны в настройках указаны пути, например:
    Было
    ‘css’ => ‘srbac_red.css’,
    Надо было:
    ‘css’ => ‘srbac_red.css’
    и тд

    Reply

    Николай Reply:


    Мм то есть быо:
    ‘css’ => ‘srbac_red.css’,
    Надо:
    ‘css’ => ‘srbac.css’

  10. Здравствуйте! Установил модуль и настроил. Оооочень удобный. Не могли бы подсказать для чего нужно создавать задачи и операции? Мы создаем роли и прописываем разрешенные действия в accessRules контролера. А для чего задачи и операции?

    Reply

    Камал Reply:


    В общем разобрался. Ответ выложил здесь http://yiiframework.ru/forum/viewtopic.php?f=3&t=22899

    Reply

  11. Спасибо, Камал!

    Reply

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