Example #1
0
    public function action_signup()
    {
        $this->template->menu_signup = TRUE;
        // Если залогинен, то перекидываем на дерево
        if (Auth::instance()->logged_in()) {
            $this->redirect(Route::url('user/id', array('user_id' => Auth::instance()->get_user()->id)));
        }
        $post = Arr::extract($this->request->post(), array('name', 'surname', 'email'));
        $data['errors'] = NULL;
        if ($this->request->method() == 'POST') {
            // Генерирую случайный пароль из цифр
            $post['password'] = Text::random('numeric', 5);
            try {
                $user = ORM::factory('User')->values($post)->save();
                $user->add('roles', ORM::factory('Role', array('name' => 'login')));
                $message = '
						Для входа на сайт ' . $_SERVER['HTTP_HOST'] . ' используйте следующие данные:<br><br>
						Адрес электронной почты: ' . HTML::chars($user->email) . '<br>
						Пароль: ' . HTML::chars($post['password']) . '<br><br>
						<a href="' . URL::base(TRUE) . '">Перейти на сайт</a>';
                Useful::mail($user->email, 'Регистрация LiveTex', $message, 'LiveTex');
                // Авторизовываю
                Auth::instance()->login($user->email, $post['password'], TRUE);
                $this->redirect(Route::url('user/id', array('user_id' => $user->id)));
            } catch (ORM_Validation_Exception $e) {
                $data['errors'] = $e->errors('orm');
            }
        }
        $data += $post;
        $this->template->content = View::factory('auth/signup', $data);
    }