<?php
	/** Blokowanie dostepu do systemu 
	 * (np. na czas krytycznych operacji wykonywanych przez administratora)
	 * @author Maciek Osinski
	 * @todo zaimplementowac :)
	 * znaczenie zmiennej Ad_systemlock:
	 * - 0 - brak blokad
	 * - 1 - blokada logowania
	 * - 2 - blokada systemu (i tak uniemozliwia logowanie)
	 * - 3 - obie blokady (tylko w celach kosmetycznych) 
	 */
	
	/** operacje w bazie danych zwiazane z blokowaniem
	 * @author Maciek Osinski
	 * @param mode tryb - jak wyzej z blokada
	 * @todo zaimplementuj !
	 */
	function lock_db ($mode) {
		if ($mode > 0) { // zaloz blokade
			$s = "insert into XP_BLOKADA values ($mode, '".date("Y-m-d G:i:s")."')";
		} else if ($mode == 0) { // usun blokade systemu
			$s = "delete from XP_BLOKADA where TRYB = 2";
		} else { // usun blokade logowania
			$s = "delete from XP_BLOKADA where TRYB = 1";
		}
		$q = new CQuery ($s);
	}

	/** Zablokuj mozliwosc logowania uzytkownikow do systemu
	 * @author Maciek Osinski
	 */
	function lock_log () {
		global $sess;

		$sess->set('Ad_systemlock', 1);
		lock_db(1);
		return true;
	}
	 
	/** Zablokuj system
	 * @author Maciek Osinski
	 * @version 0.1
	 */
	function lock_xp () {
		global $sess;

		$lock = $sess->get('Ad_systemlock');
		if ($lock == 1)
			$sess->set('Ad_systemlock', 3);
		else
			$sess->set('Ad_systemlock', 2);
		lock_db(2);
		return true;
	}

	function unlock_xp () {
		global $sess;

		$lock = $sess->get('Ad_systemlock');
		if ($lock != 3) {
			$sess->set('Ad_systemlock', 0);
			lock_db(0);
			lock_db(-1); 
		} else {
			$sess->set('Ad_systemlock', 1);
			lock_db(0);
		}
		return true;
	}

	if ($_GET['lock'] == 2) 
		lock_xp ();
	else if ($_GET['lock'] == 1)
		lock_log();
	else if ($_GET['lock'] == 0)
		unlock_xp ();
//	else 
//		printf ("Wewnetrzny blad systemu kod Ala-ma-kota\n");
?>
