Yii Авторизация. Использование модуля Yii-user

Первое с чего начинаеться разработка проекта конечно авторизация. Само собой ряд проектов также включет и настройки профиля, или личный кабинет. Этим требованиям вполне подойдёт модуль yii-user. Воможности расширения :

  • Авторизация с помощью имени пользователя или email

  • Регистрация

  • Активация аккаунтов (c проверочным email)

  • Восстановление пароля (отправка ключа восстановления на электронную почту пользователя)

  • Профиль пользователя

  • Управление пользователями

  • Управление полями профиля  

  • Виджет для просмотра, добавление и удаление полей и сохранения данных  на осневе CRUD

  • Виджет даты с использованем jQueryUI DatePicker

  • Виджет загрузки файлов

  • Виджет связи профиля

  • API модуля

Настройка модуля. Для начала нужно скачать дистрибутив yii-user. Скаченный моудь установить в папку modules, если её нет то создать. Путь должен быть такой /protected/modules/user/ Подключение модуля. настраиваем /protected/config/main.php:

'import'=>array(
    # Добавить в autoloading model and component classes'application.modules.user.*',
    'application.modules.user.models.*',
    'application.modules.user.components.*',
    'application.modules.rights.*',
    'application.modules.rights.models.*',
    'application.modules.rights.components.*',
    #...
),
'modules'=>array(
    # Добавить в список модулей'user' => array(
        // названия таблиц взяты по умолчанию, их можно изменить, для удобтва используйте свой префикс и названия'tableUsers' => 'tbl_users',
        'tableProfiles' => 'tbl_profiles',
        'tableProfileFields' => 'tbl_profiles_fields',
    ),
  
),
'components'=>array(
    # Описать в компонентах класс'user'=>array(
        'class' => 'RWebUser',
        'allowAutoLogin'=>true,
    ),
    'authManager'=>array(
        'class'=>'RDbAuthManager',
        'defaultRoles' => array('Guest') //  роль пользователя по умолчанию 
    ),
    
),

Следующим шагом импортируем дапм бд который прилагается в модуле /protected/modules/user/data/schema.mysql.sql

Теперь можно логиниться в бд появилось 2 пользователя аdmin и demo соотвественно с паролями, аdmin и demo. Но сначала выведем в меню кнопку авторизации. Для этого отредактируем виджет zii.widgets.CMenu. В файле protected\views\layouts\main.php отвечающим за вывод страницы добавим в масив следующие строки:

array('url'=>Yii::app()->getModule('user')->loginUrl, 'label'=>Yii::app()->getModule('user')->t("Login"), 'visible'=>Yii::app()->user->isGuest),
array('url'=>Yii::app()->getModule('user')->registrationUrl, 'label'=>Yii::app()->getModule('user')->t("Register"), 'visible'=>Yii::app()->user->isGuest),
array('url'=>Yii::app()->getModule('user')->profileUrl, 'label'=>Yii::app()->getModule('user')->t("Profile"), 'visible'=>!Yii::app()->user->isGuest),
array('url'=>Yii::app()->getModule('user')->logoutUrl, 'label'=>Yii::app()->getModule('user')->t("Logout").' ('.Yii::app()->user->name.')', 'visible'=>!Yii::app()->user->isGuest),

 Теперь в появившемся меню можно логиниться.

 Справа видна панель управление пользовавтелями в стиле CRUD. На изображении у меня русифициранный модуль. он имеет поддержку русского. Для русификации я добавил в protected\config\main.php следущие строки:

return array(
  //...  
  'language' => 'ru',
  //...
)

 Вот и всё. модуль вполне расширяемый  и хорошо работает с модулем настройки прав. rights

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

Похожие материалы