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);
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'),
Code: Alles auswählen
'acl_f_read_topic_content' => array('lang' => 'Kann Themeninhalte sehen', 'cat' => 'post'),
Code: Alles auswählen
'acl_f_icons' => array('lang' => 'Can use topic/post icons', 'cat' => 'post'),
Code: Alles auswählen
'acl_f_read_topic_content' => array('lang' => 'Can see Topic contents', 'cat' => 'post'),
Code: Alles auswählen
'WRONG_PASSWORD' => 'Du hast ein fehlerhaftes Passwort angegeben.',
Code: Alles auswählen
'SEE_TOPIC' => 'Du hast nicht die nötigen Rechte dieses Thema anzusehen.',
Code: Alles auswählen
'WRONG_PASSWORD' => 'You entered an incorrect password.',
Code: Alles auswählen
'SEE_TOPIC' => 'You do not have the necessary rights to see this topic.',
Code: Alles auswählen
$sort_dir = request_var('sd', $default_sort_dir);
Code: Alles auswählen
if (!$auth->acl_get('f_read_topic_content', $forum_id))
{
trigger_error('SEE_TOPIC');
}
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))));
}
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))));
}
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;
}
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;
}
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');
}
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