mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 22:28:51 +00:00
Merge pull request #4900 from rxu/ticket/15318
[ticket/15318] Make user option to disable word censoring effective again
This commit is contained in:
commit
114f38648b
2 changed files with 21 additions and 4 deletions
|
@ -557,6 +557,7 @@ function strip_bbcode(&$text, $uid = '')
|
||||||
function generate_text_for_display($text, $uid, $bitfield, $flags, $censor_text = true)
|
function generate_text_for_display($text, $uid, $bitfield, $flags, $censor_text = true)
|
||||||
{
|
{
|
||||||
static $bbcode;
|
static $bbcode;
|
||||||
|
global $auth, $config, $user;
|
||||||
global $phpbb_dispatcher, $phpbb_container;
|
global $phpbb_dispatcher, $phpbb_container;
|
||||||
|
|
||||||
if ($text === '')
|
if ($text === '')
|
||||||
|
@ -584,6 +585,13 @@ function generate_text_for_display($text, $uid, $bitfield, $flags, $censor_text
|
||||||
|
|
||||||
// Temporarily switch off viewcensors if applicable
|
// Temporarily switch off viewcensors if applicable
|
||||||
$old_censor = $renderer->get_viewcensors();
|
$old_censor = $renderer->get_viewcensors();
|
||||||
|
|
||||||
|
// Check here if the user is having viewing censors disabled (and also allowed to do so).
|
||||||
|
if (!$user->optionget('viewcensors') && $config['allow_nocensors'] && $auth->acl_get('u_chgcensors'))
|
||||||
|
{
|
||||||
|
$censor_text = false;
|
||||||
|
}
|
||||||
|
|
||||||
if ($old_censor !== $censor_text)
|
if ($old_censor !== $censor_text)
|
||||||
{
|
{
|
||||||
$renderer->set_viewcensors($censor_text);
|
$renderer->set_viewcensors($censor_text);
|
||||||
|
|
|
@ -29,7 +29,7 @@ class phpbb_text_processing_generate_text_for_display_test extends phpbb_test_ca
|
||||||
*/
|
*/
|
||||||
public function test_legacy($original, $expected, $uid = '', $bitfield = '', $flags = 0, $censor_text = true)
|
public function test_legacy($original, $expected, $uid = '', $bitfield = '', $flags = 0, $censor_text = true)
|
||||||
{
|
{
|
||||||
global $cache, $user;
|
global $auth, $cache, $config, $user;
|
||||||
|
|
||||||
global $phpbb_root_path, $phpEx;
|
global $phpbb_root_path, $phpEx;
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ class phpbb_text_processing_generate_text_for_display_test extends phpbb_test_ca
|
||||||
|
|
||||||
public function test_censor_is_restored()
|
public function test_censor_is_restored()
|
||||||
{
|
{
|
||||||
global $phpbb_container;
|
global $auth, $user, $config, $phpbb_container;
|
||||||
|
|
||||||
$phpbb_container = new phpbb_mock_container_builder;
|
$phpbb_container = new phpbb_mock_container_builder;
|
||||||
|
|
||||||
|
@ -72,7 +72,8 @@ class phpbb_text_processing_generate_text_for_display_test extends phpbb_test_ca
|
||||||
$lang_loader = new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx);
|
$lang_loader = new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx);
|
||||||
$lang = new \phpbb\language\language($lang_loader);
|
$lang = new \phpbb\language\language($lang_loader);
|
||||||
$user = new \phpbb\user($lang, '\phpbb\datetime');
|
$user = new \phpbb\user($lang, '\phpbb\datetime');
|
||||||
$user->optionset('viewcensors', false);
|
// Do not ignore word censoring by user (switch censoring on in UCP)
|
||||||
|
$user->optionset('viewcensors', true);
|
||||||
|
|
||||||
$config = new \phpbb\config\config(array('allow_nocensors' => true));
|
$config = new \phpbb\config\config(array('allow_nocensors' => true));
|
||||||
|
|
||||||
|
@ -102,6 +103,14 @@ class phpbb_text_processing_generate_text_for_display_test extends phpbb_test_ca
|
||||||
$this->assertSame('apple', $renderer->render($original));
|
$this->assertSame('apple', $renderer->render($original));
|
||||||
$this->assertSame('banana', generate_text_for_display($original, '', '', 0, true));
|
$this->assertSame('banana', generate_text_for_display($original, '', '', 0, true));
|
||||||
$this->assertSame('apple', $renderer->render($original), 'The original setting was not restored');
|
$this->assertSame('apple', $renderer->render($original), 'The original setting was not restored');
|
||||||
|
|
||||||
|
// Test user option switch to ignore censoring
|
||||||
|
$renderer->set_viewcensors(true);
|
||||||
|
// 1st: censoring is still on in UCP
|
||||||
|
$this->assertSame('banana', generate_text_for_display($original, '', '', 0, true));
|
||||||
|
// 2nd: switch censoring off in UCP
|
||||||
|
$user->optionset('viewcensors', false);
|
||||||
|
$this->assertSame('apple', generate_text_for_display($original, '', '', 0, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -109,7 +118,7 @@ class phpbb_text_processing_generate_text_for_display_test extends phpbb_test_ca
|
||||||
*/
|
*/
|
||||||
public function test_text_formatter($original, $expected, $censor_text = true, $setup = null)
|
public function test_text_formatter($original, $expected, $censor_text = true, $setup = null)
|
||||||
{
|
{
|
||||||
global $phpbb_container;
|
global $auth, $user, $config, $phpbb_container;
|
||||||
|
|
||||||
$phpbb_container = new phpbb_mock_container_builder;
|
$phpbb_container = new phpbb_mock_container_builder;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue