From 1da2428183a9f1ae8324a8b4db4ae71e3125470d Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Wed, 12 Nov 2008 03:40:49 +0000 Subject: More updates for user management. The controllers don't work yet. But the login link in the header wil open up a login box like the mockup --- modules/user/controllers/login.php | 42 +++++++++++++++++++++++++++++++++ modules/user/controllers/logout.php | 21 +++++++++++++++++ modules/user/controllers/user.php | 39 +++++++++++++++++++++++++------ modules/user/libraries/Login_Form.php | 44 +++++++++++++++++++++++++++++++++++ modules/user/views/login.html.php | 12 ++++++++++ 5 files changed, 151 insertions(+), 7 deletions(-) create mode 100644 modules/user/controllers/login.php create mode 100644 modules/user/controllers/logout.php create mode 100644 modules/user/libraries/Login_Form.php create mode 100644 modules/user/views/login.html.php (limited to 'modules') diff --git a/modules/user/controllers/login.php b/modules/user/controllers/login.php new file mode 100644 index 00000000..25e2abea --- /dev/null +++ b/modules/user/controllers/login.php @@ -0,0 +1,42 @@ +template->title = "User Login"; + + $form = new Login_Form(); + + if ($form->validate()) { + // Load the user + $user = ORM::factory("user")->where("display_name", $form->username->value)->find(); + if (!$user->loaded) { + $form->error_message = "Invalid username or password"; + } else { + if (user_password::is_correct_password($user,$form->password->value)) { + user::login($user); + url::redirect("user/success.html"); + } else { + $form->error_message = "Invalid username or password"; + } + } + } + $form->render(); + } +} \ No newline at end of file diff --git a/modules/user/controllers/logout.php b/modules/user/controllers/logout.php new file mode 100644 index 00000000..c26c6776 --- /dev/null +++ b/modules/user/controllers/logout.php @@ -0,0 +1,21 @@ +set_global('user', Session::instance()->get('user', null)); + + print $template->render(); + } + + /** + * @see Rest_Controller::_put($resource) + */ + public function _put($resource) { + throw new Exception("@todo User_Controller::_put NOT IMPLEMENTED"); } - public function logout() { - + /** + * @see Rest_Controller::_post($resource) + */ + public function _post($resource) { + throw new Exception("@todo User_Controller::_post NOT IMPLEMENTED"); } - public function register() { - + /** + * @see Rest_Controller::_delete($resource) + */ + public function _delete($resource) { + throw new Exception("@todo User_Controller::_delete NOT IMPLEMENTED"); } } \ No newline at end of file diff --git a/modules/user/libraries/Login_Form.php b/modules/user/libraries/Login_Form.php new file mode 100644 index 00000000..6874cbd4 --- /dev/null +++ b/modules/user/libraries/Login_Form.php @@ -0,0 +1,44 @@ +legend="Login"; + $this->input("username")->rules("required|length[4,32]"); + $this->password("password")->rules("required|length[5,40]"); + $this->submit("Login"); + } + + public function render($template = 'login.html', $custom = true) { + $form = parent::render($template, $custom); + $form->error_message = $this->error_message; + return $form; + } + + public function __set($key, $value) { + $this->$key = $value; + } +} \ No newline at end of file diff --git a/modules/user/views/login.html.php b/modules/user/views/login.html.php new file mode 100644 index 00000000..cfb22062 --- /dev/null +++ b/modules/user/views/login.html.php @@ -0,0 +1,12 @@ +
+ + + + + " /> + +

+ +

+ +
-- cgit v1.2.3