diff options
author | rxu <rxu@mail.ru> | 2015-05-17 21:52:30 +0700 |
---|---|---|
committer | rxu <rxu@mail.ru> | 2015-05-17 21:52:30 +0700 |
commit | 73fd75abf13b3e7c7f8a8d2910085a149f71631e (patch) | |
tree | fb11eb5f6199eefa546542ac71572da57c0db4c3 /phpBB/viewtopic.php | |
parent | e52bc2d02283aab8fc0a588feec74ec8858c48f8 (diff) | |
download | forums-73fd75abf13b3e7c7f8a8d2910085a149f71631e.tar forums-73fd75abf13b3e7c7f8a8d2910085a149f71631e.tar.gz forums-73fd75abf13b3e7c7f8a8d2910085a149f71631e.tar.bz2 forums-73fd75abf13b3e7c7f8a8d2910085a149f71631e.tar.xz forums-73fd75abf13b3e7c7f8a8d2910085a149f71631e.zip |
[ticket/13846] Fix softdelete feature workflow in viewtopic
Changes:
- For permanent deletion of softdeleted post, disapprove mode has been changed
to delete mode;
- If post delete and softdelete are allowed, delete button triggers softdelete
mode;
- If a user can't permanently delete posts but can restore softdeleted posts,
delete button won't be displayed for softdeleted posts.
Subsilver2 is unaffected.
PHPBB3-13846
Diffstat (limited to 'phpBB/viewtopic.php')
-rw-r--r-- | phpBB/viewtopic.php | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index bb1f2c925d..7846266028 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -1826,6 +1826,12 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i) (!$s_cannot_delete && !$s_cannot_delete_lastpost && !$s_cannot_delete_time && !$s_cannot_delete_locked) )); + $softdelete_allowed = ($auth->acl_get('m_softdelete', $forum_id) || + ($auth->acl_get('f_softdelete', $forum_id) && $user->data['user_id'] == $poster_id)) && ($row['post_visibility'] != ITEM_DELETED); + + $permanent_delete_allowed = ($auth->acl_get('m_delete', $forum_id) || + ($auth->acl_get('f_delete', $forum_id) && $user->data['user_id'] == $poster_id)); + // Can this user receive a Private Message? $can_receive_pm = ( // They must be a "normal" user @@ -1888,7 +1894,7 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i) 'U_EDIT' => ($edit_allowed) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=edit&f=$forum_id&p={$row['post_id']}") : '', 'U_QUOTE' => ($quote_allowed) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=quote&f=$forum_id&p={$row['post_id']}") : '', 'U_INFO' => ($auth->acl_get('m_info', $forum_id)) ? append_sid("{$phpbb_root_path}mcp.$phpEx", "i=main&mode=post_details&f=$forum_id&p=" . $row['post_id'], true, $user->session_id) : '', - 'U_DELETE' => ($delete_allowed) ? append_sid("{$phpbb_root_path}posting.$phpEx", "mode=delete&f=$forum_id&p={$row['post_id']}") : '', + 'U_DELETE' => ($delete_allowed) ? append_sid("{$phpbb_root_path}posting.$phpEx", 'mode=' . (($softdelete_allowed) ? 'soft_delete' : 'delete') . "&f=$forum_id&p={$row['post_id']}") : '', 'U_SEARCH' => $user_cache[$poster_id]['search'], 'U_PM' => $u_pm, @@ -1927,6 +1933,7 @@ for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i) 'L_IGNORE_POST' => ($row['foe']) ? sprintf($user->lang['POST_BY_FOE'], get_username_string('full', $poster_id, $row['username'], $row['user_colour'], $row['post_username'])) : '', 'S_POST_HIDDEN' => $row['hide_post'], 'L_POST_DISPLAY' => ($row['hide_post']) ? $user->lang('POST_DISPLAY', '<a class="display_post" data-post-id="' . $row['post_id'] . '" href="' . $viewtopic_url . "&p={$row['post_id']}&view=show#p{$row['post_id']}" . '">', '</a>') : '', + 'S_DELETE_PERMANENT' => $permanent_delete_allowed, ); $user_poster_data = $user_cache[$poster_id]; |