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; } }
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; } }