Активация аккаунта Yii



Как приятно после длительного перерыва снова написать статейку в свой любимый блог :).
Сегодня, как вы надеюсь помните мы будем делать активацию аккаунта на 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);
        }
    }


Думаю разобраться в коде по комментариям не составит труда.

До встречи!
Теги:
Активация аккаунта
Добавлено: 02 Марта 2015 19:18:40 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...