aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2014-03-13 10:27:19 +0100
committerJoas Schilling <nickvergessen@gmx.de>2014-03-13 10:27:19 +0100
commitdbebe30c9a109e5be78590c4a49a71122ad411c6 (patch)
treebed8526893b134a99d2545ab314d9275ebe06f55
parentd69012ea6d65e938a72f7accca498fc9feb2df0d (diff)
parent03eb23cbae5281a0e75274e52d54e2b9250de99a (diff)
downloadforums-dbebe30c9a109e5be78590c4a49a71122ad411c6.tar
forums-dbebe30c9a109e5be78590c4a49a71122ad411c6.tar.gz
forums-dbebe30c9a109e5be78590c4a49a71122ad411c6.tar.bz2
forums-dbebe30c9a109e5be78590c4a49a71122ad411c6.tar.xz
forums-dbebe30c9a109e5be78590c4a49a71122ad411c6.zip
Merge branch 'develop-olympus' into develop
* develop-olympus: [ticket/12176] Reword comment about config entries. [ticket/12176] Add newest_user_colour to config array to ensure it exists [ticket/12176] Display correct message when trying to delete founder. [ticket/12176] Add functional test for founder deletion message. Conflicts: tests/test_framework/phpbb_functional_test_case.php
-rw-r--r--phpBB/includes/acp/acp_users.php9
-rw-r--r--phpBB/language/en/acp/users.php1
-rw-r--r--tests/functional/acp_users_test.php45
-rw-r--r--tests/test_framework/phpbb_functional_test_case.php10
4 files changed, 63 insertions, 2 deletions
diff --git a/phpBB/includes/acp/acp_users.php b/phpBB/includes/acp/acp_users.php
index 603cb17941..c944f5f96f 100644
--- a/phpBB/includes/acp/acp_users.php
+++ b/phpBB/includes/acp/acp_users.php
@@ -173,8 +173,7 @@ class acp_users
if ($submit)
{
- // You can't delete the founder
- if ($delete && $user_row['user_type'] != USER_FOUNDER)
+ if ($delete)
{
if (!$auth->acl_get('a_userdel'))
{
@@ -187,6 +186,12 @@ class acp_users
trigger_error($user->lang['CANNOT_REMOVE_ANONYMOUS'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);
}
+ // Founders can not be deleted.
+ if ($user_row['user_type'] == USER_FOUNDER)
+ {
+ trigger_error($user->lang['CANNOT_REMOVE_FOUNDER'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);
+ }
+
if ($user_id == $user->data['user_id'])
{
trigger_error($user->lang['CANNOT_REMOVE_YOURSELF'] . adm_back_link($this->u_action . '&amp;u=' . $user_id), E_USER_WARNING);
diff --git a/phpBB/language/en/acp/users.php b/phpBB/language/en/acp/users.php
index 865a2a0371..9faf1d0de9 100644
--- a/phpBB/language/en/acp/users.php
+++ b/phpBB/language/en/acp/users.php
@@ -51,6 +51,7 @@ $lang = array_merge($lang, array(
'CANNOT_FORCE_REACT_FOUNDER' => 'You are not allowed to force reactivation on founder accounts.',
'CANNOT_FORCE_REACT_YOURSELF' => 'You are not allowed to force reactivation of your own account.',
'CANNOT_REMOVE_ANONYMOUS' => 'You are not able to remove the guest user account.',
+ 'CANNOT_REMOVE_FOUNDER' => 'You are not allowed to remove founder accounts.',
'CANNOT_REMOVE_YOURSELF' => 'You are not allowed to remove your own user account.',
'CANNOT_SET_FOUNDER_IGNORED' => 'You are not able to promote ignored users to be founders.',
'CANNOT_SET_FOUNDER_INACTIVE' => 'You need to activate users before you promote them to founders, only activated users are able to be promoted.',
diff --git a/tests/functional/acp_users_test.php b/tests/functional/acp_users_test.php
new file mode 100644
index 0000000000..50d9a67dc1
--- /dev/null
+++ b/tests/functional/acp_users_test.php
@@ -0,0 +1,45 @@
+<?php
+/**
+*
+* @package testing
+* @copyright (c) 2014 phpBB Group
+* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+*
+*/
+
+/**
+* @group functional
+*/
+class phpbb_functional_acp_users_test extends phpbb_functional_test_case
+{
+ public function setUp()
+ {
+ parent::setUp();
+
+ $this->login();
+ $this->admin_login();
+ $this->add_lang('acp/users');
+ }
+
+ public function test_founder_deletion()
+ {
+ $username = 'founder-account';
+ $user_id = $this->create_user($username);
+ $this->make_founder($user_id);
+
+ $crawler = self::request('GET', "adm/index.php?i=users&mode=overview&u=$user_id&sid={$this->sid}");
+ $form = $crawler->filter('#user_delete')->selectButton($this->lang('SUBMIT'))->form();
+ $crawler = self::submit($form);
+ $this->assertContains($this->lang('CANNOT_REMOVE_FOUNDER'), $this->get_content());
+ }
+
+ protected function make_founder($user_id)
+ {
+ $crawler = self::request('GET', "adm/index.php?i=users&mode=overview&u=$user_id&sid={$this->sid}");
+ $form = $crawler->filter('#user_overview')->selectButton($this->lang('SUBMIT'))->form();
+ $data = array('user_founder' => '1');
+ $form->setValues($data);
+ $crawler = self::submit($form);
+ $this->assertContains($this->lang('USER_OVERVIEW_UPDATED'), $this->get_content());
+ }
+}
diff --git a/tests/test_framework/phpbb_functional_test_case.php b/tests/test_framework/phpbb_functional_test_case.php
index e40efdec03..6a04dac691 100644
--- a/tests/test_framework/phpbb_functional_test_case.php
+++ b/tests/test_framework/phpbb_functional_test_case.php
@@ -473,6 +473,16 @@ class phpbb_functional_test_case extends phpbb_test_case
global $config;
$config = new \phpbb\config\config(array());
+
+ /*
+ * Add required config entries to the config array to prevent
+ * set_config() sending an INSERT query for already existing entries,
+ * resulting in a SQL error.
+ * This is because set_config() first sends an UPDATE query, then checks
+ * sql_affectedrows() which can be 0 (e.g. on MySQL) when the new
+ * data is already there.
+ */
+ $config['newest_user_colour'] = '';
$config['rand_seed'] = '';
$config['rand_seed_last_update'] = time() + 600;