diff options
| author | Bharat Mediratta <bharat@menalto.com> | 2008-11-15 06:23:09 +0000 |
|---|---|---|
| committer | Bharat Mediratta <bharat@menalto.com> | 2008-11-15 06:23:09 +0000 |
| commit | ae7839ffaada72c522ffcd9b3f4f1cc04027a720 (patch) | |
| tree | 50ce67306eace68cd23c294fc1aa40ba32c03bcc /modules/user/controllers/login.php | |
| parent | 26c8772e16b0328358d23ee4c29f9b592e632b28 (diff) | |
Revise the user login code.
* Remove user registration link and popup from the theme; this
shouldn't be done in a popup. Use ajaxform to simplify the way
that we load the login popup.
* Create form.html.php, this is a template for Forge based forms.
* Move user validation rules into User_Model and let forms
populate the rules into their forms as useful.
* Undo r18688's changes regarding the REST code. We should never
accept a null resource, this breaks the REST abstraction.
* Change login and user controllers to use Forge which lets us delete
login.html.php and user.html.php since those now are generated by
the theme-owned form template
Diffstat (limited to 'modules/user/controllers/login.php')
| -rw-r--r-- | modules/user/controllers/login.php | 45 |
1 files changed, 18 insertions, 27 deletions
diff --git a/modules/user/controllers/login.php b/modules/user/controllers/login.php index 7c70bb0f..a0e9f403 100644 --- a/modules/user/controllers/login.php +++ b/modules/user/controllers/login.php @@ -19,38 +19,29 @@ */ class Login_Controller extends Controller { public function index() { - $form = new Forge(); - $form->input("username")->rules("required|length[4,32]"); - $form->password("password")->rules("required|length[5,40]"); - $form->submit("Login"); - print $form->render("login.html", true); - } - - public function process() { - $form = new Forge("login.html", true); - $form->input("username")->rules("required|length[4,32]"); - $form->password("password")->rules("required|length[5,40]"); - $form->submit("Login"); + $form = new Forge("login", "", "post", array("id" => "gLogin")); + $group = $form->group(_("Login")); + $group->input("name")->label(_("Name"))->id("gName")->class(null); + $group->password("password")->label(_("Password"))->id("gPassword")->class(null); + $group->submit(_("Login")); + $form->hidden("continue")->value($this->input->get("continue")); + $group->inputs["name"]->error_messages("invalid_login", _("Invalid name or password")); - $response = array(); if ($form->validate()) { - // Load the user - $user = ORM::factory("user")->where("name", $form->username->value)->find(); - if (!$user->loaded) { - $response["error_message"] = _("Invalid username or password"); - } else { - if (user::is_correct_password($user, $form->password->value)) { - user::login($user); - $response["error_message"] = ""; - } else { - $response["error_message"] = _("Invalid username or password"); + $user = ORM::factory("user")->where("name", $group->inputs["name"]->value)->find(); + if ($user->loaded && + user::is_correct_password($user, $group->password->value)) { + user::login($user); + $continue = $form->hidden["continue"]->value; + if ($continue) { + url::redirect($form->hidden["continue"]->value); } + return; + } else { + $group->inputs["name"]->add_error("invalid_login", 1); } - } else { - $response["error_message"] = _("Invalid username or password"); } - print json_encode($response); + print $form->render("form.html", false); } - }
\ No newline at end of file |
