diff options
| -rw-r--r-- | phpBB/includes/acp/acp_groups.php | 6 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_users.php | 2 | ||||
| -rw-r--r-- | phpBB/includes/functions_user.php | 12 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_groups.php | 2 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_profile.php | 2 | ||||
| -rw-r--r-- | phpBB/phpbb/db/migration/data/v310/avatar_types.php | 60 | ||||
| -rw-r--r-- | tests/functional/avatar_acp_groups_test.php | 9 | ||||
| -rw-r--r-- | tests/functional/group_create_test.php | 31 | ||||
| -rw-r--r-- | tests/functions_user/group_user_attributes_test.php | 12 | 
9 files changed, 120 insertions, 16 deletions
diff --git a/phpBB/includes/acp/acp_groups.php b/phpBB/includes/acp/acp_groups.php index c170c67d49..b36ea1a8d8 100644 --- a/phpBB/includes/acp/acp_groups.php +++ b/phpBB/includes/acp/acp_groups.php @@ -325,6 +325,10 @@ class acp_groups  					// This is normalised data, without the group_ prefix  					$avatar_data = \phpbb\avatar\manager::clean_row($group_row, 'group'); +					if (!isset($avatar_data['id'])) +					{ +						$avatar_data['id'] = 'g' . $group_id; +					}  				} @@ -379,7 +383,7 @@ class acp_groups  						}  						else  						{ -							$driver = $phpbb_avatar_manager->get_driver($user->data['user_avatar_type']); +							$driver = $phpbb_avatar_manager->get_driver($avatar_data['avatar_type']);  							if ($driver)  							{  								$driver->delete($avatar_data); diff --git a/phpBB/includes/acp/acp_users.php b/phpBB/includes/acp/acp_users.php index fbc1cc1f14..1a7bc2d186 100644 --- a/phpBB/includes/acp/acp_users.php +++ b/phpBB/includes/acp/acp_users.php @@ -1775,7 +1775,7 @@ class acp_users  							}  							else  							{ -								$driver = $phpbb_avatar_manager->get_driver($user->data['user_avatar_type']); +								$driver = $phpbb_avatar_manager->get_driver($avatar_data['avatar_type']);  								if ($driver)  								{  									$driver->delete($avatar_data); diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php index b54197ac03..dba6d3d6c2 100644 --- a/phpBB/includes/functions_user.php +++ b/phpBB/includes/functions_user.php @@ -213,7 +213,7 @@ function user_add($user_row, $cp_data = false)  		'user_occ'				=> '',  		'user_interests'		=> '',  		'user_avatar'			=> '', -		'user_avatar_type'		=> 0, +		'user_avatar_type'		=> '',  		'user_avatar_width'		=> 0,  		'user_avatar_height'	=> 0,  		'user_new_privmsg'		=> 0, @@ -464,7 +464,7 @@ function user_delete($mode, $user_ids, $retain_username = true)  	$added_guest_posts = 0;  	foreach ($user_rows as $user_id => $user_row)  	{ -		if ($user_row['user_avatar'] && $user_row['user_avatar_type'] == AVATAR_UPLOAD) +		if ($user_row['user_avatar'] && $user_row['user_avatar_type'] == 'avatar.driver.upload')  		{  			avatar_delete('user', $user_row);  		} @@ -2315,7 +2315,7 @@ function group_create(&$group_id, $type, $name, $desc, $group_attributes, $allow  		{  			$group_id = $db->sql_nextid(); -			if (isset($sql_ary['group_avatar_type']) && $sql_ary['group_avatar_type'] == AVATAR_UPLOAD) +			if (isset($sql_ary['group_avatar_type']) && $sql_ary['group_avatar_type'] == 'avatar.driver.upload')  			{  				group_correct_avatar($group_id, $sql_ary['group_avatar']);  			} @@ -2416,7 +2416,7 @@ function avatar_remove_db($avatar_name)  	$sql = 'UPDATE ' . USERS_TABLE . "  		SET user_avatar = '', -		user_avatar_type = 0 +		user_avatar_type = ''  		WHERE user_avatar = '" . $db->sql_escape($avatar_name) . '\'';  	$db->sql_query($sql);  } @@ -2826,7 +2826,7 @@ function remove_default_avatar($group_id, $user_ids)  	$sql = 'UPDATE ' . USERS_TABLE . "  		SET user_avatar = '', -			user_avatar_type = 0, +			user_avatar_type = '',  			user_avatar_width = 0,  			user_avatar_height = 0  		WHERE group_id = " . (int) $group_id . " @@ -3084,7 +3084,7 @@ function group_set_user_default($group_id, $user_id_ary, $group_attributes = fal  		'group_colour'			=> 'string',  		'group_rank'			=> 'int',  		'group_avatar'			=> 'string', -		'group_avatar_type'		=> 'int', +		'group_avatar_type'		=> 'string',  		'group_avatar_width'	=> 'int',  		'group_avatar_height'	=> 'int',  	); diff --git a/phpBB/includes/ucp/ucp_groups.php b/phpBB/includes/ucp/ucp_groups.php index 716289eded..7c4bc8f617 100644 --- a/phpBB/includes/ucp/ucp_groups.php +++ b/phpBB/includes/ucp/ucp_groups.php @@ -509,7 +509,7 @@ class ucp_groups  								}  								else  								{ -									if ($driver = $phpbb_avatar_manager->get_driver($user->data['user_avatar_type'])) +									if ($driver = $phpbb_avatar_manager->get_driver($avatar_data['avatar_type']))  									{  										$driver->delete($avatar_data);  									} diff --git a/phpBB/includes/ucp/ucp_profile.php b/phpBB/includes/ucp/ucp_profile.php index f7c6aca9e8..2252b2ea17 100644 --- a/phpBB/includes/ucp/ucp_profile.php +++ b/phpBB/includes/ucp/ucp_profile.php @@ -603,7 +603,7 @@ class ucp_profile  							}  							else  							{ -								if ($driver = $phpbb_avatar_manager->get_driver($user->data['user_avatar_type'])) +								if ($driver = $phpbb_avatar_manager->get_driver($avatar_data['avatar_type']))  								{  									$driver->delete($avatar_data);  								} diff --git a/phpBB/phpbb/db/migration/data/v310/avatar_types.php b/phpBB/phpbb/db/migration/data/v310/avatar_types.php new file mode 100644 index 0000000000..5750a43ddd --- /dev/null +++ b/phpBB/phpbb/db/migration/data/v310/avatar_types.php @@ -0,0 +1,60 @@ +<?php +/** +* +* @package migration +* @copyright (c) 2013 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License v2 +* +*/ + +namespace phpbb\db\migration\data\v310; + +class avatar_types extends \phpbb\db\migration\migration +{ +	/** +	* @var avatar type map +	*/ +	protected $avatar_type_map = array( +		AVATAR_UPLOAD	=> 'avatar.driver.upload', +		AVATAR_REMOTE	=> 'avatar.driver.remote', +		AVATAR_GALLERY	=> 'avatar.driver.local', +	); + +	static public function depends_on() +	{ +		return array( +			'\phpbb\db\migration\data\v310\dev', +			'\phpbb\db\migration\data\v310\avatars', +		); +	} + +	public function update_data() +	{ +		return array( +			array('custom', array(array($this, 'update_user_avatar_type'))), +			array('custom', array(array($this, 'update_group_avatar_type'))), +		); +	} + +	public function update_user_avatar_type() +	{ +		foreach ($this->avatar_type_map as $old => $new) +		{ +			$sql = 'UPDATE ' . $this->table_prefix . "users +				SET user_avatar_type = '$new' +				WHERE user_avatar_type = $old"; +			$this->db->sql_query($sql); +		} +	} + +	public function update_group_avatar_type() +	{ +		foreach ($this->avatar_type_map as $old => $new) +		{ +			$sql = 'UPDATE ' . $this->table_prefix . "groups +				SET group_avatar_type = '$new' +				WHERE group_avatar_type = $old"; +			$this->db->sql_query($sql); +		} +	} +} diff --git a/tests/functional/avatar_acp_groups_test.php b/tests/functional/avatar_acp_groups_test.php index 5e908bc6da..5f767b44f2 100644 --- a/tests/functional/avatar_acp_groups_test.php +++ b/tests/functional/avatar_acp_groups_test.php @@ -69,4 +69,13 @@ class phpbb_functional_avatar_acp_groups_test extends phpbb_functional_common_av  	{  		$this->assert_avatar_submit($expected, $avatar_type, $data);  	} + +	// Test if avatar was really deleted +	public function test_no_avatar_acp_groups() +	{ +		$crawler = self::request('GET', $this->get_url() . '&sid=' . $this->sid); +		$form = $crawler->selectButton($this->lang('SUBMIT'))->form(); +		$form_data = $form->getValues(); +		$this->assertEmpty($form_data['avatar_type']); +	}  } diff --git a/tests/functional/group_create_test.php b/tests/functional/group_create_test.php new file mode 100644 index 0000000000..96780069f7 --- /dev/null +++ b/tests/functional/group_create_test.php @@ -0,0 +1,31 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2013 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +/** +* @group functional +*/ +class phpbb_functional_group_create_test extends phpbb_functional_test_case +{ + +	public function test_create_group() +	{ +		$this->login(); +		$this->admin_login(); +		$this->add_lang('acp/groups'); + +		$crawler = self::request('GET', 'adm/index.php?i=acp_groups&mode=manage&sid=' . $this->sid); +		$form = $crawler->selectButton($this->lang('SUBMIT'))->form(); +		$crawler = self::submit($form, array('group_name' => 'testtest')); + +		$form = $crawler->selectButton($this->lang('SUBMIT'))->form(); +		$crawler = self::submit($form, array('group_name' => 'testtest')); + +		$this->assertContainsLang('GROUP_CREATED', $crawler->filter('#main')->text()); +	} +} diff --git a/tests/functions_user/group_user_attributes_test.php b/tests/functions_user/group_user_attributes_test.php index 4317cf79da..86e4767970 100644 --- a/tests/functions_user/group_user_attributes_test.php +++ b/tests/functions_user/group_user_attributes_test.php @@ -27,7 +27,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes  				2,  				array(  					'group_avatar'	=> '', -					'group_avatar_type'		=> 0, +					'group_avatar_type'		=> '',  					'group_avatar_height'	=> 0,  					'group_avatar_width'	=> 0,  					'group_rank'	=> 0, @@ -43,7 +43,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes  				2,  				array(  					'group_avatar'	=> '', -					'group_avatar_type'		=> 0, +					'group_avatar_type'		=> '',  					'group_avatar_height'	=> 0,  					'group_avatar_width'	=> 0,  					'group_rank'	=> 0, @@ -59,7 +59,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes  				2,  				array(  					'group_avatar'	=> '', -					'group_avatar_type'		=> 0, +					'group_avatar_type'		=> '',  					'group_avatar_height'	=> 0,  					'group_avatar_width'	=> 0,  					'group_rank'	=> 0, @@ -75,7 +75,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes  				3,  				array(  					'group_avatar'	=> 'default2', -					'group_avatar_type'		=> 1, +					'group_avatar_type'		=> 'avatar.driver.upload',  					'group_avatar_height'	=> 1,  					'group_avatar_width'	=> 1,  					'group_rank'	=> 3, @@ -91,7 +91,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes  				3,  				array(  					'group_avatar'	=> 'default2', -					'group_avatar_type'		=> 1, +					'group_avatar_type'		=> 'avatar.driver.upload',  					'group_avatar_height'	=> 1,  					'group_avatar_width'	=> 1,  					'group_rank'	=> 3, @@ -107,7 +107,7 @@ class phpbb_functions_user_group_user_attributes_test extends phpbb_database_tes  				3,  				array(  					'group_avatar'	=> 'default2', -					'group_avatar_type'		=> 1, +					'group_avatar_type'		=> 'avatar.driver.upload',  					'group_avatar_height'	=> 1,  					'group_avatar_width'	=> 1,  					'group_rank'	=> 3,  | 
