summaryrefslogtreecommitdiff
path: root/src/controllers/AuthPage.class.php
blob: 127bc1f874a2ffa8c547a87014d6e9e1b0441346 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php

Router::register('auth', 'AuthPage');

class AuthPage extends Controller {
	public function index($routed, $remainder) {
		// So if $_POST['action'] isn't set, it will trip on '', which
		// is great, so we don't have to handle GET and PUT separately.
		@$action = $_POST['action'];
		switch ($action) {
		case 'login' : $this->login(); break;
		case 'logout': $this->logout(); break;
		case ''      : $this->maybe_login(); break;
		default      : $this->badrequest(); break;
		}
	}
	private function login() {
		$username = '';
		$password = '';
		
		$login = -1;
		if ( isset($_POST['username']) && isset($_POST['password'])) {
			$username = $_POST['username'];
			$password = $_POST['password'];
			$login = Login::login($username, $password);
		}
		
		$vars = array();
		$vars['login_code'] = $login;
		$vars['username'] = $username;
		$vars['password'] = $password;
		if (isset($_POST['url'])) {
			$vars['url'] = $_POST['url'];
		}
		
		$this->showView('auth/login', $vars);
	}
	private function logout() {
		Login::logout();
		$this->showView('auth/logout');
	}
	private function maybe_login() {
		global $mm;
		$uid = Login::isLoggedIn();
		if ($uid===false) {
			$this->login();
		} else {
			$username = $mm->database()->getUsername($uid);
			$this->showView('auth/index',
			                array('username'=>$username));
		}
	}
	private function badrequest() {
		$this->showView('auth/badrequest');
	}
}