50 lines
1.9 KiB
PHP
50 lines
1.9 KiB
PHP
<?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>';
|
|
}
|
|
?>
|