summaryrefslogtreecommitdiff
path: root/web/login.php
diff options
context:
space:
mode:
Diffstat (limited to 'web/login.php')
-rw-r--r--web/login.php56
1 files changed, 56 insertions, 0 deletions
diff --git a/web/login.php b/web/login.php
new file mode 100644
index 0000000..691e26e
--- /dev/null
+++ b/web/login.php
@@ -0,0 +1,56 @@
+<?
+require_once("../include/Namespace.inc");
+require_once("../include/Tools.inc");
+require_once("../include/Template.inc");
+
+$namespace = new Namespace(
+ array( have_database => 1,
+ have_session => 1,
+ have_user => 1 )
+) or
+ die("Nobody loves me. I don't even have space for a name.");
+
+$rules = Array();
+$rules['auth']['password'] = array(type => 'string');
+$rules['auth']['username'] = array(type => 'string');
+$rules['auth']['goto'] = array(type => 'string', optional => 1);
+$rules['login']['goto'] = array(type => 'string', optional => 1);
+$rules['login']['username'] = array(type => 'string', optional => 1);
+$rules['login']['message'] = array(type => 'string', optional => 1);
+$arguments = param_check($GLOBALS, $rules, array(params_required=>false));
+
+$message = $arguments['message'];
+$logged_in = 0;
+
+if ( $arguments['form_id']=='auth' ) {
+ $namespace->session->set_id();
+ $result = $namespace->user->do_login( $arguments['username'], $arguments['password']);
+ if ($result)
+ $logged_in = 1;
+ else
+ $message = 'Invalid username/password pair.';
+}
+
+if (! $logged_in ) {
+ $data = array();
+ $data['goto'] = $arguments['goto'];
+ $data['message'] = $message;
+ $data['username'] = $namespace->session->data['user']['username'];
+ $data['username_field'] = $arguments['username'];
+
+ $template = new Template('login.html', $namespace->config->template_path);
+ $template->parse($data);
+ print $template->output();
+} else {
+ if ($arguments['goto'])
+ redirect($namespace, $arguments['goto']);
+ else
+ redirect($namespace, './');
+}
+
+$namespace->stop();
+
+
+# vim:set ts=4:
+# vim:set shiftwidth=4:
+?>