diff options
Diffstat (limited to 'modules-available/session/page.inc.php')
-rw-r--r-- | modules-available/session/page.inc.php | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/modules-available/session/page.inc.php b/modules-available/session/page.inc.php new file mode 100644 index 00000000..ef135f9d --- /dev/null +++ b/modules-available/session/page.inc.php @@ -0,0 +1,36 @@ +<?php + +class Page_Session extends Page +{ + + protected function doPreprocess() + { + User::load(); + if (Request::post('action') === 'login') { + // Login - see if already logged in + if (User::isLoggedIn()) // and then just redirect + Util::redirect('?do=Main'); + // Else, try to log in + if (User::login(Request::post('user'), Request::post('pass'))) + Util::redirect('?do=Main'); + // Login credentials wrong - delay and show error message + sleep(1); + Message::addError('loginfail'); + } + if (Request::post('action') === 'logout') { + // Log user out (or do nothing if not logged in) + User::logout(); + Util::redirect('?do=Main'); + } + + if (User::isLoggedIn()) + Util::redirect('?do=Main'); + } + + protected function doRender() + { + Render::setTitle(Dictionary::translate('lang_login')); + Render::addTemplate('page-login'); + } + +} |