Первое, с чего начинается разработка проекта, это конечно авторизация. Само собой ряд проектов также включает и настройки профиля, или личный кабинет. Под эти требования вполне подойдёт модуль 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
- 1080 просмотров