<?

/**
 * Klasa autoryzacji usera
 *
 */
class AuthDAL {
	/**
     * Pusty konstruktor
     *
     */
	public function __construct() {

	}

	/**
     * Sprawdza uzytkownika i haslo, loguje usera , zapisuje obiekt klasy User do sesji i zwraca 1/0
     *
     * @param string $login
     * @param string $password
     * @return boolean
     */
	public static function Login($login, $password) {


		$dataDal = MfClientDAL::GetDalDataObj();
		$dataDal->setCondition(array('login' => $login, 'password' => md5($password)));
		$dataDal->addCondition('active', 1);
		$user = MfClientDAL::GetResult($dataDal, false);
		//Utils::ArrayDisplay($user);
		if (count($user) > 0 && is_object($user[0])) {
			$user[0]->setAuthorized(1);
			SessionProxy::SetValue(EnumSessionValue::USER_OBJECT, $user[0]);
			//Utils::ArrayDisplay(SessionProxy::GetValue(EnumSessionValue::USER_OBJECT));
			return true;
		} else {
			return false;
		}
	}

	/**
     * Zwraca obiekt klasy User lub 0
     *
     * @return boolean
     */
	public static function GetUser() {

		$user = SessionProxy::GetValue(EnumSessionValue::USER_OBJECT);
		
		if(is_object($user) && $user->getAuthorized()){
			return $user;
		} else { 
			return false;
		}
	}
	
	/**
     * Czysci sesje wylogowujac usera
     *
     */
	public static function Logout() {
		SessionProxy::ClearValue(EnumSessionValue::USER_OBJECT);
	}
}

?>