summaryrefslogblamecommitdiffstats
path: root/inc/user.inc.php
blob: de61593247c3e6db7327364cdc5304780fed9109 (plain) (tree)


























































                                                                                                                                                                               
<?php

require_once('inc/session.inc.php');

class User
{
	private static $user = false;
	private static $session = false;

	public static function isLoggedIn()
	{
		return self::$user !== false;
	}

	public static function getName()
	{
		if (self::$user === false) return false;
		return self::$user['name'];
	}

	public static function load()
	{
		if (isset($_REQUEST['PHPSESSID']) || isset($_COOKIE['PHPSESSID'])) {
			session_start();
			if (!isset($_SESSION['uid']) || !is_numeric($_SESSION['uid'])) {
				self::logout();
				return false;
			}
			// TODO: Query user db for persistent data
			$user['name'] = 'Hans';
			return true;
		}
		return false;
	}

	public static function login($user, $pass)
	{
		if ($user == 'test' && $pass == 'test') {
			session_start();
			$_SESSION['uid'] = 1;
			$_SESSION['token'] = md5(rand() . time() . rand() . $_SERVER['REMOTE_ADDR'] . rand() . $_SERVER['REMOTE_PORT'] . rand() . $_SERVER['HTTP_USER_AGENT']);
			session_write_close();
			return true;
		}
		return false;
	}

	public static function logout()
	{
		session_unset();
		session_destroy();
		if (setcookie('PHPSESSID', '', time() - 86400)) {
			Header('Location: ?do=main&fromlogout');
		}
		exit(0);
	}

}