Example #1
0
    public function addUser($data)
    {
        $vData = $data;
        $validation = Validation::factory($vData);
        $validation->rule('username', 'not_empty');
        $validation->rule('username', 'email');
        if (!$validation->check()) {
            $this->errors = $validation->errors('userErrors');
            return FALSE;
        }
        $pass = Arr::get($data, 'pass');
        $username = addslashes(Arr::get($data, 'username'));
        $myuser = ORM::factory('Myuser');
        $auth = Auth::instance();
        $pass = $auth->hash($pass);
        //Создаем пользователя
        $myuser->username = $username;
        $myuser->email = $username;
        $myuser->password = $pass;
        $myuser->name = addslashes(Arr::get($data, 'name'));
        $myuser->phone = addslashes(Arr::get($data, 'phone'));
        try {
            $myuser->save();
            //Узнаем id пользователя
            $add_user_id = ORM::factory("user", array("username" => $username))->id;
            $token = substr($auth->hash($add_user_id . $username), 0, 20);
            //добавляем роль пользователя
            $model_addrole = new Model_Addrole();
            $model_addrole->user_id = $add_user_id;
            $model_addrole->role_id = Arr::get($data, "role");
            $model_addrole->save();
            //добавляем запись для активации
            $model_addtoken = new Model_Addtoken();
            $model_addtoken->user_id = $add_user_id;
            $model_addtoken->token = $token;
            $model_addtoken->save();
            //отправляем пользователю сообщение для авторизации
            $config = Kohana::$config->load('email');
            $mbase = new Model_Base();
            $options = $mbase->getOptions();
            Email::connect($config);
            $to = $username;
            $subject = 'Добро пожаловать на сайт ' . $options['sitename'];
            $from = $config['options']['username'];
            $message = '<b>Отправитель</b>: ' . Kohana::$base_url . '<br>';
            $message .= 'Для работы с заказами на сайте Вам необходимо активировать учетную запись. <br>
                        <br>
                        Ваш логин:  ' . $username . '<br>
                        Ваш пароль: ' . Arr::get($data, 'pass') . '<br><br>

                        Для активации перейдите по <a href="' . Kohana::$base_url . 'registration?token=' . $token . '&user='******'">этой ссылке</a>
                        <hr>
                        Спасибо за то, что пользуетесь услугами нашего сайта. По всем вопросам обращайтесь в техподдержку: ' . $config['options']['username'];
            $res = Email::send($to, $from, $subject, $message, $html = TRUE);
            return $add_user_id;
        } catch (ORM_Validation_Exception $e) {
            $this->errors = $e->errors('validation');
            return false;
        }
    }
 public function reg($email, $role)
 {
     //$regcode = new Model_Regcode();
     $myuser = new Model_Myuser();
     /*$regcode->code = $regcodevalue;	
     
     		try
     		{
     			$regcode->check();
     		}
     		catch(ORM_Validation_Exception $e)
     		{
     			$this->errors = $e->errors('validation');
     			return FALSE;
     		}
     */
     //Создание пользователя
     $myuser->username = $email;
     $myuser->email = $email;
     //Генерируем пароль
     $useful = new Model_Useful();
     $genpass = $useful->generatePassword(8);
     //Хеширование пароля
     $auth = Auth::instance();
     $myuser->password = $auth->hash_password($genpass);
     try {
         $myuser->save();
         //Узнаем ID пользователя
         $usertemp = ORM::factory('Myuser', array('username' => $email));
         $adduserid = $usertemp->id;
         //Сохранение роли
         $addrole = new Model_Addrole();
         $addrole->user_id = $adduserid;
         $addrole->role_id = $role;
         $addrole->save();
         //Дизактивация секретного кода
         //$regcode->disactive_code($adduserid);
         //Отправка электронной почты
         $from = '*****@*****.**';
         $subject = 'Регистрация ОС';
         $message = "Ваш логин: {$email} Ваш пароль: {$genpass}";
         $useful->sendemail($email, $from, $subject, $message);
         return TRUE;
     } catch (ORM_Validation_Exception $e) {
         $this->errors = $e->errors('validation');
         return FALSE;
     }
 }
Example #3
0
 public function activateUser($user, $token)
 {
     try {
         $usertmp = ORM::factory('User', array('username' => $user));
         $adduserid = $usertmp->id;
         $tokenuser = ORM::factory('Addtoken', array('user_id' => $adduserid, 'token' => $token));
         if ($tokenuser->id != NULL) {
             //add login role
             $adduser = new Model_Addrole();
             $adduser->user_id = $adduserid;
             $adduser->role_id = '1';
             $adduser->save();
             $tokenuser->delete()->where('id', '=', $tokenuser->id);
             return TRUE;
         } else {
             return false;
         }
     } catch (ORM_Validation_Exception $e) {
         $this->errors = $e->errors('validation');
         return false;
     }
 }