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