benutzerechte checken!

Hallo,
Ich würds nicht ganz so extrem machen "insert, update".
Was ist, wenn du z.B. ein Newsformular hast du eingeloggt user zwar einen Kommentar zu einem Newspost verfassen dürfen, allerdings nicht einen Newseintrag selbst schreiben dürfen?

Ein beispiel für die datenbank:
Code:
Tabelle user:
user_id
user_name
user_regdate
user_birthday
 
Tabelle permissions:
per_id
per_name
 
Tabelle: permission_assign
user_id
per_id
so kannst du beispielsweise einen user anlegen
Code:
insert into user (1, 'Dein Name', SYSDATE(), SYSDATE());
dann fügst du ein paar Rechte ein:
Code:
insert into permission(1, 'News Schreiben');
insert into permission(2, 'News Löschen');
dann weisst du einem user rechte zu:
Code:
insert into permission_assign(1,1);

jetzt kannst du z.b. Konstanten für die Rechte anlegen:
PHP:
define("PERMISSION_NEWS_ADD", 1);
define("PERMISSION_NEWS_DEL", 2);

dann kannst du eine Funktion schreiben, welche prüft, ob der eingeloggte user das Recht für etwas hat:
PHP:
function CheckPermission($per_id, $user_id) {
	 $sel = "SELECT per_id FROM permission_assign WHERE user_id = ".$user_id." AND per_id = ".$per_id.";";
	 $qry = mysql_query($sel);
 
	 if(mysql_num_rows($qry) == 0) 
		 return false;
	 else
		 return true;
}

Jetzt kannst du beispielsweise prüfen ob der eingeloggte user was darf:

PHP:
$user_id = 1;
 
if(CheckPermission(PERMISSION_NEWS_ADD, $user_id)) {
	echo "Du darfst eine News schreiben";
} else {
	echo "Du darfst es nicht...";
}

Hinweis:
Dieser Code ist ungetestet!
 
Zuletzt bearbeitet:
Zurück