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