From eb5a6cb006a3b65daca604996a154484bb318221 Mon Sep 17 00:00:00 2001
From: Joas Schilling <nickvergessen@gmx.de>
Date: Sun, 10 Mar 2013 22:07:38 +0100
Subject: [ticket/9657] Display reason field, when the user has both delete
 permissions

PHPBB3-9657
---
 phpBB/posting.php | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

(limited to 'phpBB/posting.php')

diff --git a/phpBB/posting.php b/phpBB/posting.php
index dd6c3556fc..40ffc0d98d 100644
--- a/phpBB/posting.php
+++ b/phpBB/posting.php
@@ -363,7 +363,8 @@ if ($mode == 'delete' || $mode == 'soft_delete')
 		trigger_error('NO_POST');
 	}
 
-	$soft_delete_reason = ($mode == 'soft_delete' && $auth->acl_get('m_softdelete', $forum_id)) ? $request->variable('delete_reason', '', true) : '';
+	$allow_reason = $auth->acl_get('m_softdelete', $forum_id) || ($auth->acl_gets('m_delete', 'f_delete', $forum_id) && $auth->acl_gets('m_softdelete', 'f_softdelete', $forum_id));
+	$soft_delete_reason = ($mode == 'soft_delete' && $allow_reason) ? $request->variable('delete_reason', '', true) : '';
 	handle_post_delete($forum_id, $topic_id, $post_id, $post_data, ($mode == 'soft_delete'), $soft_delete_reason);
 	return;
 }
@@ -1154,7 +1155,8 @@ if ($submit || $preview || $refresh)
 			// Handle delete mode...
 			if ($request->is_set_post('delete') || $request->is_set_post('delete_permanent'))
 			{
-				$soft_delete_reason = (!$request->is_set_post('delete_permanent') && $auth->acl_get('m_softdelete', $forum_id)) ? $request->variable('delete_reason', '', true) : '';
+				$allow_reason = $auth->acl_get('m_softdelete', $forum_id) || ($auth->acl_gets('m_delete', 'f_delete', $forum_id) && $auth->acl_gets('m_softdelete', 'f_softdelete', $forum_id));
+				$soft_delete_reason = (!$request->is_set_post('delete_permanent') && $allow_reason) ? $request->variable('delete_reason', '', true) : '';
 				handle_post_delete($forum_id, $topic_id, $post_id, $post_data, !$request->is_set_post('delete_permanent'), $soft_delete_reason);
 				return;
 			}
@@ -1645,12 +1647,14 @@ function handle_post_delete($forum_id, $topic_id, $post_id, &$post_data, $is_sof
 		{
 			global $user, $template, $request;
 
+			$display_reason = $auth->acl_get('m_softdelete', $forum_id) || ($auth->acl_gets('m_delete', 'f_delete', $forum_id) && $auth->acl_gets('m_softdelete', 'f_softdelete', $forum_id));
+
 			$template->assign_vars(array(
 				'S_SOFTDELETED'			=> $post_data['post_visibility'] == ITEM_DELETED,
 				'S_CHECKED_PERMANENT'	=> $request->is_set_post('delete_permanent') ? ' checked="checked"' : '',
 				'S_ALLOWED_DELETE'		=> $auth->acl_gets('m_delete', 'f_delete', $forum_id),
 				'S_ALLOWED_SOFTDELETE'	=> $auth->acl_gets('m_softdelete', 'f_softdelete', $forum_id),
-				'S_DELETE_REASON'		=> $auth->acl_get('m_softdelete', $forum_id),
+				'S_DELETE_REASON'		=> $display_reason,
 			));
 
 			$l_confirm = 'DELETE_POST';
-- 
cgit v1.2.1