<?php
/*
 * security.php enthält Funktionen für Sicherheitsabfragen
 */
	
	/*
	 * Gibt true zurück, wenn der Nutzer die Erlaubnis hat die durch $item 
	 * bezeichnete Resource zu öffen, sonst false.
	 * $item enthält den Startverzeichnis-relativen Pfad zur Ressource.
	 */
	function itemAccessible($item) {
		if (isset($_SESSION['gruppen']) & is_array($_SESSION['gruppen'])){
			
			// superuser aus der Gruppe admin dürfen alles
			if (in_array('admin', $_SESSION['gruppen'])) return true;
			
			mysql_connect('localhost', 'dbu1022769', 'fuB0gar7') or die ('Database error: Unable to connect to database.');
			mysql_select_db('db1022769-php') or die ('Database error: Unable to select database.');
			$result = mysql_query('SELECT gruppen FROM securepages WHERE pfad="'.$item.'"');
			if (!$result) {
				die('Database error: Unable to get user groups for '.$item);
			}
			else if (mysql_num_rows($result) > 0) {
				$erlaubte_gruppen = explode(',',mysql_result($result,0));
				foreach ($_SESSION['gruppen'] as $gruppe) {
					if (in_array($gruppe, $erlaubte_gruppen)) return true;
				}
			}
		} 
		return false;
	}
	
	/*
	 * Generiert einen gesicherten Link. Das Aussehen verändert sich, je nachdem, ob der
	 * Nutzer die Erlaubnis hat, die Seite hinter dem Link aufzurufen, oder nicht.
	 */
	function secLink($item, $text) {
		// relative Links in Startverzeichnis-relative umwandeln
		if (getHomePath(dirname($_SERVER['SCRIPT_FILENAME'])) != dirname($item)) {
			$item = getHomePath(dirname($_SERVER['SCRIPT_FILENAME'])).SEPARATOR.$item;
		}
		
		if (!itemAccessible($item)) {
//			return '<a href="'.$item.'" style="color:#666666;" rel="nofollow">'.$text.'</a> <img src="/daten/lock.gif" alt="passwortgeschützt" />';
			return '<span style="color:#666666;">'.$text.'</span> <img src="/daten/lock.gif" alt="gesichert" />';
		}
		return '<a href="'.$item.'">'.$text.'</a>';
	}	
?>
