Seite 1 von 2

User darf Threads sehen aber nicht lesen! Wie?

Verfasst: 27.07.2007 17:38
von MyLord
Hallo,

ich möchte das meine User in einem bestimmten Bereich die Threads sehen können aber nicht lesen sollen. Admin und moderatoren sollen lesen können.

Durch die Suchfunktion habe ich folgendes gefunden und eingebaut aber es funktioniert nicht. Normale User können weiterhin nicht diesen Bereich betreten. Weiss jemand wie ich das realisieren kann?


gn#36 hat geschrieben:Wenn du in der viewforum.php folgende Änderung vornimmst sollte es möglich sein, dass zwar die Threadnamen angezeigt werden, aber der Inhalt nicht gelesen werden kann:

Suche in der viewforum.php

Code: Alles auswählen

//
// Start auth check
//
$is_auth = array();
$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row);

if ( !$is_auth['auth_read'] || !$is_auth['auth_view'] )
{
	if ( !$userdata['session_logged_in'] )
	{
		$redirect = POST_FORUM_URL . "=$forum_id" . ( ( isset($start) ) ? "&start=$start" : '' );
		redirect(append_sid("login.$phpEx?redirect=viewforum.$phpEx&$redirect", true));
	}
	//
	// The user is not authed to read this forum ...
	//
	
		
	
	$message = ( !$is_auth['auth_view'] ) ? $lang['Forum_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']);

	message_die(GENERAL_MESSAGE, $message);
	
}
//
// End of auth check
//
und ersetze es mit

Code: Alles auswählen

//
// Start auth check
//
$is_auth = array();
$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row);

if ( !$is_auth['auth_read'] || !$is_auth['auth_view'] )
{
	if ( !$userdata['session_logged_in'] )
	{
		$redirect = POST_FORUM_URL . "=$forum_id" . ( ( isset($start) ) ? "&start=$start" : '' );
		redirect(append_sid("login.$phpEx?redirect=viewforum.$phpEx&$redirect", true));
	}
	//
	// The user is not authed to read this forum ...
	//
	if(!$is_auth['auth_post'])
	{
		
	
	$message = ( !$is_auth['auth_view'] ) ? $lang['Forum_not_exist'] : sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']);

	message_die(GENERAL_MESSAGE, $message);
	}
}
//
// End of auth check
//
Danach musst du im ACP noch das Forum so einstellen, dass Betrachten erlaubt, Lesen verboten(oder nur für Moderatoren erlaubt, oder für spezielle Gruppen), aber Posten erlaubt ist. Zu beachten ist allerdings, dass diese Einstellung in dieser Form zunächst für alle Foren gilt, d.h. alle Foren, in denen betrachten und posten erlaubt, aber lesen verboten ist verhalten sich auf diese Weise, wenn du das nicht möchtest musst du die Erlaubnis zum Posten auch abschalten.
http://www.phpbb.de/viewtopic.php?t=132608

Verfasst: 28.07.2007 02:00
von gn#36
Hast du auch das gemacht:
Danach musst du im ACP noch das Forum so einstellen, dass Betrachten erlaubt, Lesen verboten(oder nur für Moderatoren erlaubt, oder für spezielle Gruppen), aber Posten erlaubt ist. Zu beachten ist allerdings, dass diese Einstellung in dieser Form zunächst für alle Foren gilt, d.h. alle Foren, in denen betrachten und posten erlaubt, aber lesen verboten ist verhalten sich auf diese Weise, wenn du das nicht möchtest musst du die Erlaubnis zum Posten auch abschalten.
Ohne die entsprechende Einstellung klappt es nicht.

Verfasst: 28.07.2007 06:56
von MyLord
stimmt wenn ich dem User das Posten erlaube dann funktioniert es, aber ich möchte nicht das die User ein neues Thema öffnen können. Ist das auch machbar? :-?

Verfasst: 28.07.2007 13:22
von gn#36
Ok, mit dieser Konstruktion kann er neue Themen erstellen. Wenn du das ändern möchtest dann verwende stattdessen eine andere Berechtigung als Ersatz. Beispielsweise könnte man das ganze so umbauen dass nicht die Berechtigung zum neuen Thema erteilt wird, sondern zum erstellen von Umfragen. Da man eine Umfrage nicht erstellen kann ohne auch Bearbeitungsrechte oder Postingrechte zu besitzten - welche du ja nicht erteilst - können wir das recht ruhigen Gewissens gewähren da es keine Anwendung finden kann sofern nicht noch andere Rechte bestehen.
In der Codeänderung müsstest du dann lediglich diese Zeile

Code: Alles auswählen

if(!$is_auth['auth_post'])
durch die hier ersetzen:

Code: Alles auswählen

if(!$is_auth['auth_pollcreate'])
Und dann logischerweise statt der Berechtigung für neue Themen das Recht zum erstellen von Umfragen setzen (also gesetzt wären dann die Rechte "sehen","Umfrage erstellen" mehr nicht).

Verfasst: 01.08.2007 21:27
von MyLord
Danke schön gn#36

es funktioniert und die Threads werden noch nicht mal bei der Suche berücksichtigt. Und noch ein dickes Lob für die ausführliche Erklärung. :grin:

Verfasst: 01.08.2007 22:19
von gn#36
Vielleicht kannst du dir dann das nächste Mal ja sogar selbst helfen ;)

Verfasst: 02.08.2007 03:13
von Thoni
Leider funktioniert es bei mir überhaupt nicht ... hab die einstellungen Ansicht (Alle) Lesen (Reg) Posten (Alle) auch so eingestellt, wie es beschrieben war, oder ist das die falsche Einstellung ?

Hab phpbb v2.0.22 mit dem Template Ad Infinitum 2.0.20.c

Verfasst: 02.08.2007 10:51
von gn#36
Das kommt ganz darauf an was du jetzt genau eingebaut hast. Hast du die Ursprüngliche Version eingebaut dann dürfen deine User nun auch neue Themen erstellen, diese aber nicht mehr lesen nachdem sie erstellt wurden, aber die Themenübersicht sehen.
Hast du die modifizierte Version eingebaut (die ich ein paar Posts höher dargestellt habe) dann sind die Einstellungen falsch, denn du müsstest dann die Berechtigungen so einstellen, dass die Berechtigten das Forum sehen dürfen und darin Umfragen erstellen dürfen, aber nichts sonst. Dann können sie auch wirklich nur die Themen sehen.

Verfasst: 02.08.2007 17:44
von Domitz
Hi, leider klappt dies nicht für Gäste :(

Verfasst: 02.08.2007 20:33
von Thoni
Bei mir geht es auch um die Gäste. Egal welche Einstellungen ich mache, entweder wird mir direkt das Login fenster angezeigt, oder ich sehe die Beiträge samt Inhalt