Seite 1 von 1

Verhindern das User sehen was sie nicht sehen dürfen? ;)

Verfasst: 06.05.2003 16:50
von Jason
Hi,
ich frage mit diesem Query einige Topic infos ab:

Code: Alles auswählen

$sql = "SELECT topic_id,topic_title,topic_replies
        FROM " . TOPICS_TABLE . " t
        LEFT JOIN " . FORUMS_TABLE . " f
        ON t.forum_id=f.forum_id
        ORDER BY topic_replies DESC
        LIMIT 10";
Um genau zu sein die Top 10 Topics nach Replies nun würde ich gerne verhindern das Benutzer Topics sehen für die sie nicht die nötigen rechte haben reicht es da wenn ich einfach WHERE f.auth_view = 0 hinzufüge?

Gruß Jason

Verfasst: 06.05.2003 17:17
von PhilippK
Es sollte reichen, aber ich such dir was eleganteres raus. Wird aber erst heute abend.

Gruß, Philipp

Verfasst: 06.05.2003 17:24
von Jason
Ja das wär nett :)

Grüße Jason

Verfasst: 06.05.2003 22:45
von PhilippK
Versuch's mal mit:

Code: Alles auswählen

if ( $userdata['session_logged_in'] )
{
	$sql = "SELECT DISTINCT t.topic_id, t.topic_title, t.topic_replies
		FROM " . TOPICS_TABLE . " t 
		INNER JOIN " . FORUMS_TABLE . " f ON t.forum_id = f.forum_id
		LEFT JOIN " . AUTH_ACCESS_TABLE . " aa on f.forum_id = aa.forum_id
		LEFT JOIN " . USER_GROUP_TABLE . " ug on aa.group_id = ug.group_id
		LEFT JOIN " . USERS_TABLE . " u on ug.user_id = u.user_id
		WHERE f.auth_read = " . AUTH_ALL " . OR
			(ug.user_id = " . $userdata['user_id'] . " AND ((aa.auth_read = 1 AND ug.user_pending = 0) OR user_level = " . ADMIN . "))
		ORDER BY topic_replies DESC 
		LIMIT 10";
}
else
{
	$sql = "SELECT DISTINCT t.topic_id, t.topic_title, t.topic_replies
		FROM " . TOPICS_TABLE . " t 
		INNER JOIN " . FORUMS_TABLE . " f ON t.forum_id = f.forum_id
		LEFT JOIN " . AUTH_ACCESS_TABLE . " aa on f.forum_id = aa.forum_id
		LEFT JOIN " . USER_GROUP_TABLE . " ug on aa.group_id = ug.group_id
		LEFT JOIN " . USERS_TABLE . " u on ug.user_id = u.user_id
		WHERE f.auth_read = " . AUTH_ALL
		ORDER BY topic_replies DESC 
		LIMIT 10";
}
Ich hoffe, dass der auch in schwierigen Fällen richtig funzt...

Gruß, Philipp