aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2013-02-26 16:53:51 +0100
committerJoas Schilling <nickvergessen@gmx.de>2013-02-26 16:53:51 +0100
commit9e70f7a4e0e419984ad5dd0392857ecd810ad252 (patch)
tree598f0c41fd4f294850c6f5e43c413c2a819dc66b /phpBB
parente0df5934485df0eee22141d1c5ded3e432119b20 (diff)
downloadforums-9e70f7a4e0e419984ad5dd0392857ecd810ad252.tar
forums-9e70f7a4e0e419984ad5dd0392857ecd810ad252.tar.gz
forums-9e70f7a4e0e419984ad5dd0392857ecd810ad252.tar.bz2
forums-9e70f7a4e0e419984ad5dd0392857ecd810ad252.tar.xz
forums-9e70f7a4e0e419984ad5dd0392857ecd810ad252.zip
[ticket/10411] Catch exceptions from grouppositions
PHPBB3-10411
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/includes/acp/acp_groups.php73
-rw-r--r--phpBB/includes/functions_user.php84
2 files changed, 108 insertions, 49 deletions
diff --git a/phpBB/includes/acp/acp_groups.php b/phpBB/includes/acp/acp_groups.php
index 805fc28520..17145508aa 100644
--- a/phpBB/includes/acp/acp_groups.php
+++ b/phpBB/includes/acp/acp_groups.php
@@ -851,53 +851,66 @@ class acp_groups
{
$group_position = $phpbb_container->get('groupposition.' . $field);
- $group_position->set_admin_back_link($this->u_action);
}
if ($field == 'teampage')
{
- switch ($action)
+ try
{
- case 'add':
- $group_position->add_group_teampage($group_id, $category_id);
- break;
+ switch ($action)
+ {
+ case 'add':
+ $group_position->add_group_teampage($group_id, $category_id);
+ break;
- case 'add_category':
- $group_position->add_category_teampage($request->variable('category_name', '', true));
- break;
+ case 'add_category':
+ $group_position->add_category_teampage($request->variable('category_name', '', true));
+ break;
- case 'delete':
- $group_position->delete_teampage($teampage_id);
- break;
+ case 'delete':
+ $group_position->delete_teampage($teampage_id);
+ break;
- case 'move_up':
- $group_position->move_up_teampage($teampage_id);
- break;
+ case 'move_up':
+ $group_position->move_up_teampage($teampage_id);
+ break;
- case 'move_down':
- $group_position->move_down_teampage($teampage_id);
- break;
+ case 'move_down':
+ $group_position->move_down_teampage($teampage_id);
+ break;
+ }
+ }
+ catch (phpbb_groupposition_exception $exception)
+ {
+ trigger_error($user->lang($exception->getMessage()) . adm_back_link($this->u_action), E_USER_WARNING);
}
}
else if ($field == 'legend')
{
- switch ($action)
+ try
{
- case 'add':
- $group_position->add_group($group_id);
- break;
+ switch ($action)
+ {
+ case 'add':
+ $group_position->add_group($group_id);
+ break;
- case 'delete':
- $group_position->delete_group($group_id);
- break;
+ case 'delete':
+ $group_position->delete_group($group_id);
+ break;
- case 'move_up':
- $group_position->move_up($group_id);
- break;
+ case 'move_up':
+ $group_position->move_up($group_id);
+ break;
- case 'move_down':
- $group_position->move_down($group_id);
- break;
+ case 'move_down':
+ $group_position->move_down($group_id);
+ break;
+ }
+ }
+ catch (phpbb_groupposition_exception $exception)
+ {
+ trigger_error($user->lang($exception->getMessage()) . adm_back_link($this->u_action), E_USER_WARNING);
}
}
else
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php
index 379abe4d42..cae83bf203 100644
--- a/phpBB/includes/functions_user.php
+++ b/phpBB/includes/functions_user.php
@@ -2606,8 +2606,15 @@ function group_create(&$group_id, $type, $name, $desc, $group_attributes, $allow
$teampage = $phpbb_container->get('groupposition.teampage');
if ($group_id)
{
- $current_legend = $legend->get_group_value($group_id);
- $current_teampage = $teampage->get_group_value($group_id);
+ try
+ {
+ $current_legend = $legend->get_group_value($group_id);
+ $current_teampage = $teampage->get_group_value($group_id);
+ }
+ catch (phpbb_groupposition_exception $exception)
+ {
+ trigger_error($user->lang($exception->getMessage()));
+ }
}
if (!empty($group_attributes['group_legend']))
@@ -2626,7 +2633,14 @@ function group_create(&$group_id, $type, $name, $desc, $group_attributes, $allow
else if ($group_id && ($current_legend != phpbb_groupposition_legend::GROUP_DISABLED))
{
// Group is removed from the legend
- $legend->delete_group($group_id, true);
+ try
+ {
+ $legend->delete_group($group_id, true);
+ }
+ catch (phpbb_groupposition_exception $exception)
+ {
+ trigger_error($user->lang($exception->getMessage()));
+ }
$group_attributes['group_legend'] = phpbb_groupposition_legend::GROUP_DISABLED;
}
else
@@ -2733,7 +2747,14 @@ function group_create(&$group_id, $type, $name, $desc, $group_attributes, $allow
// which is currently displayed.
if (!$group_teampage && $group_id && $current_teampage != phpbb_groupposition_teampage::GROUP_DISABLED)
{
- $teampage->delete_group($group_id);
+ try
+ {
+ $teampage->delete_group($group_id);
+ }
+ catch (phpbb_groupposition_exception $exception)
+ {
+ trigger_error($user->lang($exception->getMessage()));
+ }
}
if (!$group_id)
@@ -2746,21 +2767,28 @@ function group_create(&$group_id, $type, $name, $desc, $group_attributes, $allow
}
}
- if ($group_teampage && $current_teampage == phpbb_groupposition_teampage::GROUP_DISABLED)
- {
- $teampage->add_group($group_id);
- }
-
- if ($group_teampage)
+ try
{
- if ($current_teampage == phpbb_groupposition_teampage::GROUP_DISABLED)
+ if ($group_teampage && $current_teampage == phpbb_groupposition_teampage::GROUP_DISABLED)
{
$teampage->add_group($group_id);
}
+
+ if ($group_teampage)
+ {
+ if ($current_teampage == phpbb_groupposition_teampage::GROUP_DISABLED)
+ {
+ $teampage->add_group($group_id);
+ }
+ }
+ else if ($group_id && ($current_teampage != phpbb_groupposition_teampage::GROUP_DISABLED))
+ {
+ $teampage->delete_group($group_id);
+ }
}
- else if ($group_id && ($current_teampage != phpbb_groupposition_teampage::GROUP_DISABLED))
+ catch (phpbb_groupposition_exception $exception)
{
- $teampage->delete_group($group_id);
+ trigger_error($user->lang($exception->getMessage()));
}
unset($teampage);
@@ -2887,13 +2915,31 @@ function group_delete($group_id, $group_name = false)
while ($start);
// Delete group from legend and teampage
- $legend = $phpbb_container->get('groupposition.legend');
- $legend->delete_group($group_id);
- unset($legend);
+ try
+ {
+ $legend = $phpbb_container->get('groupposition.legend');
+ $legend->delete_group($group_id);
+ unset($legend);
+ }
+ catch (phpbb_groupposition_exception $exception)
+ {
+ // The group we want to delete does not exist.
+ // No reason to worry, we just continue the deleting process.
+ //trigger_error($user->lang($exception->getMessage()));
+ }
- $teampage = $phpbb_container->get('groupposition.teampage');
- $teampage->delete_group($group_id);
- unset($teampage);
+ try
+ {
+ $teampage = $phpbb_container->get('groupposition.teampage');
+ $teampage->delete_group($group_id);
+ unset($teampage);
+ }
+ catch (phpbb_groupposition_exception $exception)
+ {
+ // The group we want to delete does not exist.
+ // No reason to worry, we just continue the deleting process.
+ //trigger_error($user->lang($exception->getMessage()));
+ }
// Delete group
$sql = 'DELETE FROM ' . GROUPS_TABLE . "