Seite 1 von 1
Suche Rechtevergabe in der Datenbank
Verfasst: 20.03.2008 22:58
von Despor
Hallo alle zusammen
Vielleicht kann mir jemand helfen
Ich habe mir eine eigene PHP Seite gebaut wo ich die letzten 3 Einträge anzeige.
In der alten PHPBB2 Version war es möglich über
Code: Alles auswählen
SELECT * FROM phpbb3_posts a JOIN forums b ON a.forum_id = b.forum_id WHERE b.auth_read = 0 ORDER BY a.post_id DESC LIMIT 1
nur offene Einträge anzuzeigen. (In der Datenbank Forums das Feld auth_read)
Leider kann ich in der aktuellen Version diesen Eintrag nicht mehr finden.
Gibt es eine Möglichkeit in der neuen Version ebenfalls nur freien posts anzeigen in PHP.
Hier ist der aktuelle Status
http://aoc.ordensritter.com
Gruß
Despor
Verfasst: 21.03.2008 00:15
von nickvergessen
Wenn
http://aoc.ordensritter.com/forum/index.php dein Forum ist, fehlt da was!
KB:copyright
Verfasst: 21.03.2008 00:21
von gn#36
Einfachste Methode: Benutze die AUTH-API des Forums dann geht das so:
Das Array enthält dann die erlaubten Foren. Streng genommen wird das zwar dann abhängig vom User geholt, aber dadurch bekommen ja dann die User die mehr dürfen lediglich mehr angezeigt.
Ansonsten wird das eher schwierig, denn durch die flexible Speicherung musst du zunächst die option_id herausfinden, die in deinem Forum für f_read angelegt ist (Tabelle acl_auth_options wenn ich mich nicht irre), dann musst du aus der Tabelle groups die Gruppen ID der Gruppe GUESTS bestimmen und für diese dann in der Tabelle acl_groups alle Foren auslesen, in denen die entsprechende Option mit einem positiven Wert gesetzt ist. Allerdings reicht das noch lange nicht, denn es kann auch sein, dass über eine Rolle Zugriff besteht, d.h. du musst dann noch über die Tabelle acl_roles_data die Rollen herausfinden, die diese Option gesetzt haben und diese zusätzlich noch aus der Tabelle fischen. Also nicht sonderlich einfach.
Alternativ kannst du versuchen den Eintrag in der users Tabelle beim User anonymous zu decodieren. Dazu musst du dir dann die Klasse auth mal genauer ansehen, vor allem die Methode acl in welcher die Dekodierung stattfindet. Das Problem dabei ist allerdings, dass das nicht funktioniert, wenn der Cache mal geleert wurde, denn dann muss der erst wieder aufgebaut werden. Das einfachste ist es also eindeutig, wenn du die vorhandenen Funktionen nutzt.
Verfasst: 21.03.2008 00:33
von Despor
Ups sorry ist gleich wieder da
Verfasst: 21.03.2008 00:35
von Despor
Ich danke dir gn#36
Werde das gleich mal versuchen .
Vielen herzlichen Dank
Despor
Verfasst: 21.03.2008 00:40
von gn#36
Denk trotzdem an das Copyright (und lass es vor allem auch drin, ansonsten </support>).