summaryrefslogtreecommitdiffstats
path: root/modules/session/module.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules/session/module.inc.php')
-rw-r--r--modules/session/module.inc.php36
1 files changed, 36 insertions, 0 deletions
diff --git a/modules/session/module.inc.php b/modules/session/module.inc.php
new file mode 100644
index 00000000..ef135f9d
--- /dev/null
+++ b/modules/session/module.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');
+ }
+
+}