[ticket/14168] Use attachment manager instead of separate classes

PHPBB3-14168
This commit is contained in:
Marc Alexander 2015-10-12 11:34:11 +02:00
parent a0167ad410
commit 49312f05f8
12 changed files with 67 additions and 64 deletions

View file

@ -39,8 +39,8 @@ class acp_attachments
/** @var \phpbb\filesystem\filesystem_interface */ /** @var \phpbb\filesystem\filesystem_interface */
protected $filesystem; protected $filesystem;
/** @var \phpbb\attachment\delete */ /** @var \phpbb\attachment\manager */
protected $attachment_delete; protected $attachment_manager;
public $id; public $id;
public $u_action; public $u_action;
@ -58,7 +58,7 @@ class acp_attachments
$this->user = $user; $this->user = $user;
$this->phpbb_container = $phpbb_container; $this->phpbb_container = $phpbb_container;
$this->filesystem = $phpbb_filesystem; $this->filesystem = $phpbb_filesystem;
$this->attachment_delete = $phpbb_container->get('attachment.delete'); $this->attachment_manager = $phpbb_container->get('attachment.manager');
$user->add_lang(array('posting', 'viewtopic', 'acp/attachments')); $user->add_lang(array('posting', 'viewtopic', 'acp/attachments'));
@ -926,11 +926,11 @@ class acp_attachments
$delete_files = array(); $delete_files = array();
while ($row = $db->sql_fetchrow($result)) while ($row = $db->sql_fetchrow($result))
{ {
$this->attachment_delete->unlink_attachment($row['physical_filename'], 'file'); $this->attachment_manager->unlink($row['physical_filename'], 'file');
if ($row['thumbnail']) if ($row['thumbnail'])
{ {
$this->attachment_delete->unlink_attachment($row['physical_filename'], 'thumbnail'); $this->attachment_manager->unlink($row['physical_filename'], 'thumbnail');
} }
$delete_files[$row['attach_id']] = $row['real_filename']; $delete_files[$row['attach_id']] = $row['real_filename'];
@ -1095,7 +1095,7 @@ class acp_attachments
} }
$db->sql_freeresult($result); $db->sql_freeresult($result);
if ($num_deleted = $this->attachment_delete->delete('attach', $delete_files)) if ($num_deleted = $this->attachment_manager->delete('attach', $delete_files))
{ {
if (sizeof($delete_files) != $num_deleted) if (sizeof($delete_files) != $num_deleted)
{ {

View file

@ -1809,10 +1809,10 @@ class acp_forums
} }
$db->sql_freeresult($result); $db->sql_freeresult($result);
/** @var \phpbb\attachment\delete $attachment_delete */ /** @var \phpbb\attachment\manager $attachment_manager */
$attachment_delete = $phpbb_container->get('attachment.delete'); $attachment_manager = $phpbb_container->get('attachment.manager');
$attachment_delete->delete('topic', $topic_ids, false); $attachment_manager->delete('topic', $topic_ids, false);
unset($attachment_delete); unset($attachment_manager);
// Delete shadow topics pointing to topics in this forum // Delete shadow topics pointing to topics in this forum
delete_topic_shadows($forum_id); delete_topic_shadows($forum_id);

View file

@ -543,10 +543,10 @@ class acp_users
if (confirm_box(true)) if (confirm_box(true))
{ {
/** @var \phpbb\attachment\delete $attachment_delete */ /** @var \phpbb\attachment\manager $attachment_manager */
$attachment_delete = $phpbb_container->get('attachment.delete'); $attachment_manager = $phpbb_container->get('attachment.manager');
$attachment_delete->delete('user', $user_id); $attachment_manager->delete('user', $user_id);
unset($attachment_delete); unset($attachment_manager);
$phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_USER_DEL_ATTACH', false, array($user_row['username'])); $phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_USER_DEL_ATTACH', false, array($user_row['username']));
trigger_error($user->lang['USER_ATTACHMENTS_REMOVED'] . adm_back_link($this->u_action . '&u=' . $user_id)); trigger_error($user->lang['USER_ATTACHMENTS_REMOVED'] . adm_back_link($this->u_action . '&u=' . $user_id));
@ -2129,10 +2129,10 @@ class acp_users
} }
$db->sql_freeresult($result); $db->sql_freeresult($result);
/** @var \phpbb\attachment\delete $attachment_delete */ /** @var \phpbb\attachment\manager $attachment_manager */
$attachment_delete = $phpbb_container->get('attachment.delete'); $attachment_manager = $phpbb_container->get('attachment.manager');
$attachment_delete->delete('attach', $marked); $attachment_manager->delete('attach', $marked);
unset($attachment_delete); unset($attachment_manager);
$message = (sizeof($log_attachments) == 1) ? $user->lang['ATTACHMENT_DELETED'] : $user->lang['ATTACHMENTS_DELETED']; $message = (sizeof($log_attachments) == 1) ? $user->lang['ATTACHMENT_DELETED'] : $user->lang['ATTACHMENTS_DELETED'];

View file

@ -1024,10 +1024,10 @@ function delete_posts($where_type, $where_ids, $auto_sync = true, $posted_sync =
$search->index_remove($post_ids, $poster_ids, $forum_ids); $search->index_remove($post_ids, $poster_ids, $forum_ids);
/** @var \phpbb\attachment\delete $attachment_delete */ /** @var \phpbb\attachment\manager $attachment_manager */
$attachment_delete = $phpbb_container->get('attachment.delete'); $attachment_manager = $phpbb_container->get('attachment.manager');
$attachment_delete->delete('post', $post_ids, false); $attachment_manager->delete('post', $post_ids, false);
unset($attachment_delete); unset($attachment_manager);
/** /**
* Perform additional actions during post(s) deletion * Perform additional actions during post(s) deletion
@ -1124,11 +1124,11 @@ function delete_attachments($mode, $ids, $resync = true)
{ {
global $phpbb_container; global $phpbb_container;
/** @var \phpbb\attachment\delete $attachment_delete */ /** @var \phpbb\attachment\manager $attachment_manager */
$attachment_delete = $phpbb_container->get('attachment.delete'); $attachment_manager = $phpbb_container->get('attachment.manager');
$num_deleted = $attachment_manager->delete($mode, $ids, $resync);
$num_deleted = $attachment_delete->delete($mode, $ids, $resync); unset($attachment_manager);
unset($attachment_delete);
return $num_deleted; return $num_deleted;
} }
@ -1253,10 +1253,10 @@ function phpbb_unlink($filename, $mode = 'file', $entry_removed = false)
{ {
global $phpbb_container; global $phpbb_container;
/** @var \phpbb\attachment\delete $attachment_delete */ /** @var \phpbb\attachment\manager $attachment_manager */
$attachment_delete = $phpbb_container->get('attachment.delete'); $attachment_manager = $phpbb_container->get('attachment.manager');
$unlink = $attachment_delete->unlink_attachment($filename, $mode, $entry_removed); $unlink = $attachment_manager->unlink($filename, $mode, $entry_removed);
unset($attachment_delete); unset($attachment_manager);
return $unlink; return $unlink;
} }

View file

@ -406,10 +406,10 @@ function upload_attachment($form_name, $forum_id, $local = false, $local_storage
{ {
global $phpbb_container; global $phpbb_container;
/** @var \phpbb\attachment\upload $attachment_upload */ /** @var \phpbb\attachment\manager $attachment_manager */
$attachment_upload = $phpbb_container->get('attachment.upload'); $attachment_manager = $phpbb_container->get('attachment.manager');
$file = $attachment_upload->upload($form_name, $forum_id, $local, $local_storage, $is_message, $local_filedata); $file = $attachment_manager->upload($form_name, $forum_id, $local, $local_storage, $is_message, $local_filedata);
unset($attachment_upload); unset($attachment_manager);
return $file; return $file;
} }

View file

@ -1153,10 +1153,10 @@ function delete_pm($user_id, $msg_ids, $folder_id)
if (sizeof($delete_ids)) if (sizeof($delete_ids))
{ {
// Check if there are any attachments we need to remove // Check if there are any attachments we need to remove
/** @var \phpbb\attachment\delete $attachment_delete */ /** @var \phpbb\attachment\manager $attachment_manager */
$attachment_delete = $phpbb_container->get('attachment.delete'); $attachment_manager = $phpbb_container->get('attachment.manager');
$attachment_delete->delete('message', $delete_ids, false); $attachment_manager->delete('message', $delete_ids, false);
unset($attachment_delete); unset($attachment_manager);
$sql = 'DELETE FROM ' . PRIVMSGS_TABLE . ' $sql = 'DELETE FROM ' . PRIVMSGS_TABLE . '
WHERE ' . $db->sql_in_set('msg_id', $delete_ids); WHERE ' . $db->sql_in_set('msg_id', $delete_ids);
@ -1361,10 +1361,10 @@ function phpbb_delete_users_pms($user_ids)
if (!empty($delete_ids)) if (!empty($delete_ids))
{ {
// Check if there are any attachments we need to remove // Check if there are any attachments we need to remove
/** @var \phpbb\attachment\delete $attachment_delete */ /** @var \phpbb\attachment\manager $attachment_manager */
$attachment_delete = $phpbb_container->get('attachment.delete'); $attachment_manager = $phpbb_container->get('attachment.manager');
$attachment_delete->delete('message', $delete_ids, false); $attachment_manager->delete('message', $delete_ids, false);
unset($attachment_delete); unset($attachment_manager);
$sql = 'DELETE FROM ' . PRIVMSGS_TABLE . ' $sql = 'DELETE FROM ' . PRIVMSGS_TABLE . '
WHERE ' . $db->sql_in_set('msg_id', $delete_ids); WHERE ' . $db->sql_in_set('msg_id', $delete_ids);

View file

@ -1571,9 +1571,9 @@ class parse_message extends bbcode_firstpass
{ {
if ($num_attachments < $cfg['max_attachments'] || $auth->acl_get('a_') || $auth->acl_get('m_', $forum_id)) if ($num_attachments < $cfg['max_attachments'] || $auth->acl_get('a_') || $auth->acl_get('m_', $forum_id))
{ {
/** @var \phpbb\attachment\upload $attachment_upload */ /** @var \phpbb\attachment\manager $attachment_manager */
$attachment_upload = $phpbb_container->get('attachment.upload'); $attachment_manager = $phpbb_container->get('attachment.manager');
$filedata = $attachment_upload->upload($form_name, $forum_id, false, '', $is_message); $filedata = $attachment_manager->upload($form_name, $forum_id, false, '', $is_message);
$error = $filedata['error']; $error = $filedata['error'];
if ($filedata['post_attach'] && !sizeof($error)) if ($filedata['post_attach'] && !sizeof($error))
@ -1643,8 +1643,8 @@ class parse_message extends bbcode_firstpass
if ($index !== false && !empty($this->attachment_data[$index])) if ($index !== false && !empty($this->attachment_data[$index]))
{ {
/** @var \phpbb\attachment\delete $attachment_delete */ /** @var \phpbb\attachment\manager $attachment_manager */
$attachment_delete = $phpbb_container->get('attachment.delete'); $attachment_manager = $phpbb_container->get('attachment.manager');
// delete selected attachment // delete selected attachment
if ($this->attachment_data[$index]['is_orphan']) if ($this->attachment_data[$index]['is_orphan'])
@ -1660,11 +1660,11 @@ class parse_message extends bbcode_firstpass
if ($row) if ($row)
{ {
$attachment_delete->unlink_attachment($row['physical_filename'], 'file'); $attachment_manager->unlink($row['physical_filename'], 'file');
if ($row['thumbnail']) if ($row['thumbnail'])
{ {
$attachment_delete->unlink_attachment($row['physical_filename'], 'thumbnail'); $attachment_manager->unlink($row['physical_filename'], 'thumbnail');
} }
$db->sql_query('DELETE FROM ' . ATTACHMENTS_TABLE . ' WHERE attach_id = ' . (int) $this->attachment_data[$index]['attach_id']); $db->sql_query('DELETE FROM ' . ATTACHMENTS_TABLE . ' WHERE attach_id = ' . (int) $this->attachment_data[$index]['attach_id']);
@ -1672,7 +1672,7 @@ class parse_message extends bbcode_firstpass
} }
else else
{ {
$attachment_delete->delete('attach', $this->attachment_data[$index]['attach_id']); $attachment_manager->delete('attach', $this->attachment_data[$index]['attach_id']);
} }
unset($this->attachment_data[$index]); unset($this->attachment_data[$index]);
@ -1692,9 +1692,9 @@ class parse_message extends bbcode_firstpass
{ {
if ($num_attachments < $cfg['max_attachments'] || $auth->acl_gets('m_', 'a_', $forum_id)) if ($num_attachments < $cfg['max_attachments'] || $auth->acl_gets('m_', 'a_', $forum_id))
{ {
/** @var \phpbb\attachment\upload $attachment_upload */ /** @var \phpbb\attachment\manager $attachment_manager */
$attachment_upload = $phpbb_container->get('attachment.upload'); $attachment_manager = $phpbb_container->get('attachment.manager');
$filedata = $attachment_upload->upload($form_name, $forum_id, false, '', $is_message); $filedata = $attachment_manager->upload($form_name, $forum_id, false, '', $is_message);
$error = array_merge($error, $filedata['error']); $error = array_merge($error, $filedata['error']);
if (!sizeof($error)) if (!sizeof($error))

View file

@ -70,10 +70,10 @@ class ucp_attachments
if (confirm_box(true)) if (confirm_box(true))
{ {
/** @var \phpbb\attachment\delete $attachment_delete */ /** @var \phpbb\attachment\manager $attachment_manager */
$attachment_delete = $phpbb_container->get('attachment.delete'); $attachment_manager = $phpbb_container->get('attachment.manager');
$attachment_delete->delete('attach', $delete_ids); $attachment_manager->delete('attach', $delete_ids);
unset($attachment_delete); unset($attachment_manager);
meta_refresh(3, $this->u_action); meta_refresh(3, $this->u_action);
$message = ((sizeof($delete_ids) == 1) ? $user->lang['ATTACHMENT_DELETED'] : $user->lang['ATTACHMENTS_DELETED']) . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>'); $message = ((sizeof($delete_ids) == 1) ? $user->lang['ATTACHMENT_DELETED'] : $user->lang['ATTACHMENTS_DELETED']) . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>');

View file

@ -74,8 +74,8 @@ class phpbb_attachment_manager_test extends \phpbb_test_case
'delete', 'delete',
['foo', [1, 2, 3]], ['foo', [1, 2, 3]],
['foo', [1, 2, 3], true], ['foo', [1, 2, 3], true],
true, 5,
true, 5,
), ),
array( array(
'delete', 'delete',
@ -83,8 +83,8 @@ class phpbb_attachment_manager_test extends \phpbb_test_case
'delete', 'delete',
['foo', [1, 2, 3], false], ['foo', [1, 2, 3], false],
['foo', [1, 2, 3], false], ['foo', [1, 2, 3], false],
true, 2,
true, 2,
), ),
array( array(
'resync', 'resync',

View file

@ -319,7 +319,8 @@ class phpbb_content_visibility_delete_post_test extends phpbb_database_test_case
$phpbb_container = new phpbb_mock_container_builder(); $phpbb_container = new phpbb_mock_container_builder();
$phpbb_container->set('notification_manager', new phpbb_mock_notification_manager()); $phpbb_container->set('notification_manager', new phpbb_mock_notification_manager());
$phpbb_container->set('content.visibility', new \phpbb\content_visibility($auth, $config, $phpbb_dispatcher, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE)); $phpbb_container->set('content.visibility', new \phpbb\content_visibility($auth, $config, $phpbb_dispatcher, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE));
$phpbb_container->set('attachment.delete', $attachment_delete); // Works as a workaround for tests
$phpbb_container->set('attachment.manager', $attachment_delete);
delete_post($forum_id, $topic_id, $post_id, $data, $is_soft, $reason); delete_post($forum_id, $topic_id, $post_id, $data, $is_soft, $reason);

View file

@ -36,7 +36,8 @@ class phpbb_functions_user_delete_user_test extends phpbb_database_test_case
$phpbb_dispatcher = new phpbb_mock_event_dispatcher(); $phpbb_dispatcher = new phpbb_mock_event_dispatcher();
$phpbb_container = new phpbb_mock_container_builder(); $phpbb_container = new phpbb_mock_container_builder();
$phpbb_container->set('notification_manager', new phpbb_mock_notification_manager()); $phpbb_container->set('notification_manager', new phpbb_mock_notification_manager());
$phpbb_container->set('attachment.delete', new \phpbb\attachment\delete($config, $db, new \phpbb_mock_event_dispatcher(), new \phpbb\filesystem\filesystem(), new \phpbb\attachment\resync($db), $phpbb_root_path)); // Works as a workaround for tests
$phpbb_container->set('attachment.manager', new \phpbb\attachment\delete($config, $db, new \phpbb_mock_event_dispatcher(), new \phpbb\filesystem\filesystem(), new \phpbb\attachment\resync($db), $phpbb_root_path));
$phpbb_container->set( $phpbb_container->set(
'auth.provider.db', 'auth.provider.db',
new phpbb_mock_auth_provider() new phpbb_mock_auth_provider()

View file

@ -91,7 +91,8 @@ class phpbb_privmsgs_delete_user_pms_test extends phpbb_database_test_case
$phpbb_container = new phpbb_mock_container_builder(); $phpbb_container = new phpbb_mock_container_builder();
$phpbb_container->set('notification_manager', new phpbb_mock_notification_manager()); $phpbb_container->set('notification_manager', new phpbb_mock_notification_manager());
$phpbb_container->set('attachment.delete', new \phpbb\attachment\delete(new \phpbb\config\config(array()), $db, new \phpbb_mock_event_dispatcher(), new \phpbb\filesystem\filesystem(), new \phpbb\attachment\resync($db), $phpbb_root_path)); // Works as a workaround for tests
$phpbb_container->set('attachment.manager', new \phpbb\attachment\delete(new \phpbb\config\config(array()), $db, new \phpbb_mock_event_dispatcher(), new \phpbb\filesystem\filesystem(), new \phpbb\attachment\resync($db), $phpbb_root_path));
phpbb_delete_user_pms($delete_user); phpbb_delete_user_pms($delete_user);