[Tipp] Neues Recht - Kann Themeninhalte sehen

Tipps zur Forensoftware phpBB 3.0.x
Gesperrt
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

[Tipp] Neues Recht - Kann Themeninhalte sehen

Beitrag von Mahony »

Hallo

Problem
In phpBB3.0.x ist es standardmäßig nicht möglich, das Board über die Rechtevergabe so einzustellen, dass Gruppen (oder auch einzelne Benutzer) zwar ein (oder mehrere - oder alle) Themen sehen können, nicht aber lesen.

Lösung
Neues Recht - Themeninhalte sehen

SQL

Code: Alles auswählen

INSERT INTO phpbb_acl_options (auth_option, is_global, is_local, founder_only) VALUES ('f_read_topic_content', 0, 1, 0);
Sprachdateien
Suche in der /language/de/acp/permissions_phpbb.php

Code: Alles auswählen

 'acl_f_icons'        => array('lang' => 'Kann Themen-/Beitrags-Symbole verwenden', 'cat' => 'post'),   
Füge danach ein

Code: Alles auswählen

 'acl_f_read_topic_content'        => array('lang' => 'Kann Themeninhalte sehen', 'cat' => 'post'),   
Suche in der /language/en/acp/permissions_phpbb.php

Code: Alles auswählen

'acl_f_icons'        => array('lang' => 'Can use topic/post icons', 'cat' => 'post'),     
Füge danach ein

Code: Alles auswählen

'acl_f_read_topic_content'        => array('lang' => 'Can see Topic contents', 'cat' => 'post'),   
Suche in der /language/de/common.php

Code: Alles auswählen

'WRONG_PASSWORD'    => 'Du hast ein fehlerhaftes Passwort angegeben.',   
Füge danach ein

Code: Alles auswählen

'SEE_TOPIC'            => 'Du hast nicht die nötigen Rechte dieses Thema anzusehen.',   
Suche in der /language/en/common.php

Code: Alles auswählen

 'WRONG_PASSWORD'    => 'You entered an incorrect password.',   
Füge danach ein

Code: Alles auswählen

 'SEE_TOPIC'            => 'You do not have the necessary rights to see this topic.',   
Suche in der viewtopc.php

Code: Alles auswählen

$sort_dir   = request_var('sd', $default_sort_dir);   
Füge danach ein

Code: Alles auswählen

if (!$auth->acl_get('f_read_topic_content', $forum_id))
{
     trigger_error('SEE_TOPIC');
}   
Suche in der search.php

Code: Alles auswählen

{
		$ex_fid_ary = array_unique(array_merge(array_keys($auth->acl_getf('!f_read', true)), array_keys($auth->acl_getf('!f_search', true))));
	}
Ersetze mit

Code: Alles auswählen

{
		$ex_fid_ary = array_unique(array_merge(array_keys($auth->acl_getf('!f_read', true)), array_keys($auth->acl_getf('!f_search', '!f_read_topic_content', true))));
	}
Suche

Code: Alles auswählen

if ($auth->acl_gets('!f_search', '!f_list', $row['forum_id']))
	{
		// if the user does not have permissions to search or see this forum skip only this forum/category
		continue;
	}
Ersetze mit

Code: Alles auswählen

if ($auth->acl_gets('!f_search', '!f_list', '!f_read_topic_content', $row['forum_id']))
	{
		// if the user does not have permissions to search or see this forum skip only this forum/category
		continue;
	}
Suche in der mcp.php

Code: Alles auswählen

// if the user cannot read the forum he tries to access then we won't allow mcp access either
if ($forum_id && !$auth->acl_get('f_read', $forum_id))
{
	trigger_error('NOT_AUTHORISED');
}
Ersetze mit

Code: Alles auswählen

// if the user cannot read the forum he tries to access then we won't allow mcp access either
if ($forum_id && !$auth->acl_get('f_read', $forum_id)|| !$auth->acl_get('f_read_topic_content', $forum_id))
{
	trigger_error('NOT_AUTHORISED');
}

Anschlie0end den cache leeren (hier insbesondere die cache/data_global.php und die cache/data_acl_options.php).

Im Anschluss daran, sollte man seine Forenrechte für jede Gruppe überprüfen und seinen Wünschen entsprechend ändern.




Grüße: Mahony
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört. Weise ist, wer erkennt, welche Hälfte richtig ist.

Bild
Gesperrt