Как приятно после длительного перерыва снова написать статейку в свой любимый блог
.
Сегодня, как вы надеюсь помните мы будем делать активацию аккаунта на yii.
На этом закончим лирическое отступление и перейдем непосредственно к разработке.
И первое, что нам нужно сделать – это добавить действие actionActivation в контроллере defaultController модуля User:
/*
* Активация аккаунта
*
* @param
* @return
*/
function actionActivation() {
//TODO делаем активацию
}
Все предельно просто.
Теперь я создал представление message.php для вывода сообщений об успешной или не успешной активации аккаунта, вот с таким кодом:
<?php
$this->breadcrumbs=array(
$breadcrumb,
);
?>
<h1><?php echo $messageTitle ?></h1>
<div id="content">
<h1><?php echo $messageText ?></h1>
</div>
Переменная $messageTitle — получает заголовок сообщения, а переменная $messageText — сам текст сообщения.
Ну и сам код действия:
/*
* Активация аккаунта
*
* @param
* @return
*/
function actionActivation() {
if(!empty($_GET['key'])) {
$user = User::model()->find('activationKey = :activationKey',
array(':activationKey' => $_GET['key']));
// Проверяем существует ли пользователь с данным кодом активации
if(!empty($user)) {
if($user->status == '1') {
$this->render('message', array('breadcrumb' => 'Активация аккаунта',
'messageTitle' => 'Активация аккаунта',
'messageText' => 'Аккаунт уже активирован!'));
} else {
$user->status = '1';
$user->save();
$this->render('message', array('breadcrumb' => 'Активация аккаунта',
'messageTitle' => 'Активация аккаунта',
'messageText' => 'Аккаунт успешно активирован!'));
}
} else {
// Если нет такого ключа то выводим сообщение об ошибке
throw new CHttpException(403, 'Такого пользователя не существует.');
}
} else {
// Если не передан ключ активации, редиректим обратно
$this->redirect(Yii::app()->user->returnUrl);
}
}
Думаю разобраться в коде по комментариям не составит труда.
В следующем выпуске
будем делать восстановление пароля.
До встречи!

Спасибо за уроки, очень помогает при работе. А когда будет следующая часть про восстановление пароля и остальные?
Reply
А разве не нужно проверять что находится в $_GET['key']) ? Инъекции быть не может?
Reply
Постараюсь по-быстрее выложить новые статьи.
Проверять не нужно, yii сам фильтрует.
Reply
Автор, когда будут новые статьи по yii???
Reply
Все сделал по инструкции, только вот не хватает авторизации.
Автор – даешь статью про авторизацию на основе srbac!
Или хотя бы как прикрутить стандартную авторизацию к srbac
Reply