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 #2
0
 public function action_index()
 {
     $data = array();
     $myuser = new Model_Myuser();
     $data['username'] = $myuser->displayusername();
     if (isset($_POST['btnsubmit'])) {
         $oldpass = Arr::get($_POST, 'oldpass', '');
         $newpass1 = Arr::get($_POST, 'newpass1', '');
         $newpass2 = Arr::get($_POST, 'newpass2', '');
         if ($myuser->saveNewPass($oldpass, $newpass1, $newpass2)) {
             $data['newpassok'] = '';
         } else {
             $data['errors'] = $myuser->getErrors();
         }
     }
     $this->template->content = View::factory('accountview', $data);
 }
Example #3
0
 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>Логин:&nbsp;&nbsp;<input type="text" value="' . $name . '"></small></p>';
         $message .= '<p><small>Пароль:&nbsp;<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;
     }
 }
Example #4
0
 public function before()
 {
     $session = Session::instance();
     $session->set('auth_redirect', $_SERVER['REQUEST_URI']);
     $auth = Auth::instance();
     if ($auth->logged_in('admin') == 0) {
         Controller::redirect('auth');
     }
     // Выполняем функцию родительского класса
     parent::before();
     $myuser = new Model_Myuser();
     $config = Kohana::$config->load('main')->admin;
     $base = new Model_Base();
     $options = $base->getOptions();
     $this->template->styles = $config['styles'];
     $this->template->scripts = $config['scripts'];
     $this->user = $auth->get_user()->as_array();
     $this->user['role'] = $myuser->get_role($this->user['id']);
     $this->template->sitename = $options['sitename'];
     $this->template->user = $this->user;
     $this->template->title = 'Панель управления';
 }