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 reg($name, $pass, $role) { PC::debug(array($name, $pass, $role), "reg"); $myuser = new Model_Myuser(); $auth = Auth::instance(); $hash_pass = $auth->hash($pass); //Создаем пользователя $myuser->username = $name; $myuser->email = $name; $myuser->password = $hash_pass; try { $myuser->save(); //Узнаем id пользователя //$usertmp = ORM::factory('user', array('username'=>$name)); $adduserid = DB::select()->from('users')->where('username', '=', $name)->execute()->as_array()[0]["id"]; $adduser = new Model_Addrole(); $adduser->user_id = $adduserid; $adduser->role_id = $role; $adduser->save(); //добавляем запись для активации $token = substr($auth->hash($adduserid . $name), 0, 20); $addtoken = new Model_Addtoken(); $addtoken->user_id = $adduserid; $addtoken->token = $token; $addtoken->save(); //отправляем пользователю сообщение для авторизации $config = Kohana::$config->load('email'); $mbase = new Model_Base(); $options = $mbase->getOptions(); Email::connect($config); $to = $name; $subject = 'Добро пожаловать на сайт ' . $options['sitename']; $from = $config['options']['username']; $message = '<h2>Вы успешно зарегистрировались на сайте <a href="' . Kohana::$base_url . '">' . $options['sitename'] . '</a>!</h2><hr>'; $message .= '<p>Перед входом пожалуйста подтвердите свою учётную запись, для этого перейдите по <a href="' . Kohana::$base_url . 'user/activate?token=' . $token . '&user='******'">этой ссылке</a>.</p><hr>'; $message .= '<h3>Ваши реквизиты для входа:<h3>'; $message .= '<p><small>Логин: <input type="text" value="' . $name . '"></small></p>'; $message .= '<p><small>Пароль: <input type="text" value="' . $pass . '"></small></p>'; $message .= '<hr>Спасибо за то, что пользуетесь услугами нашего портала. По всем вопросам обращайтесь в техподдержку: ' . $config['options']['username']; Email::send($to, $from, $subject, $message, $html = true); return true; } catch (ORM_Validation_Exception $e) { $this->errors = $e->errors('validation'); return false; } }