<?php
/**
* Copyright (C) 2011 Kai Dorschner
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @author Kai Dorschner <the-hide@address.com>
* @copyright Copyright 2011, Kai Dorschner
* @license http://www.gnu.org/licenses/gpl.html GPLv3
* @package mocovi
*/
class_exists('Session') or require $GLOBALS['library'].'Session.php';
/**
* @todo unfinished
*/
class UserLogin
{
protected $users = array();
public function __construct(Array $users)
{
$this->users = $users;
Session::start();
}
public function login($user, $password)
{
if(isset($this->users[$user]) && $password === $this->users[$user]->password)
{
echo 'You are now logged in';
Session::set
(
'userlogin',
(Object)array
(
'loggedin' => true,
'user' => $user
)
);
}
else
throw new WrongLoginException();
}
public function loggedIn()
{
return (Session::get('userlogin') && Session::get('userlogin')->loggedin);
}
public function logout()
{
Session::delete('userlogin');
}
}
class WrongLoginException extends Exception {}
$users = array
(
'kernel' => (Object) array
(
'password' => '123'
),
'hide@address.com' => (Object) array
(
'password' => 'abc'
)
);
$x = new UserLogin($users);
if(!$x->loggedIn())
{
try
{
$x->login('hide@address.com', 'abc');
}
catch(WrongLoginException $e)
{
echo 'Wrong login.';
}
}
else
{
echo 'You are already logged in';
$x->logout();
}