Merge pull request #4116 from marc1706/ticket/14402

[ticket/14402] Tidy plupload cron should not rely on user id/ip being available

* marc1706/ticket/14402:
  [ticket/14402] Directly pass user id and ip
  [ticket/14402] Get rid of globals in tidy_plupload cron
  [ticket/14402] Do not expect user id and ip to be available in cron
This commit is contained in:
Tristan Darricau 2016-01-18 23:46:22 +01:00
commit 77d033f99e
2 changed files with 14 additions and 4 deletions

View file

@ -106,6 +106,8 @@ services:
arguments:
- '%core.root_path%'
- '@config'
- '@log'
- '@user'
calls:
- [set_name, [cron.task.core.tidy_plupload]]
tags:

View file

@ -42,6 +42,12 @@ class tidy_plupload extends \phpbb\cron\task\base
*/
protected $config;
/** @var \phpbb\log\log_interface */
protected $log;
/** @var \phpbb\user */
protected $user;
/**
* Directory where plupload stores temporary files.
* @var string
@ -53,11 +59,15 @@ class tidy_plupload extends \phpbb\cron\task\base
*
* @param string $phpbb_root_path The root path
* @param \phpbb\config\config $config The config
* @param \phpbb\log\log_interface $log Log
* @param \phpbb\user $user User object
*/
public function __construct($phpbb_root_path, \phpbb\config\config $config)
public function __construct($phpbb_root_path, \phpbb\config\config $config, \phpbb\log\log_interface $log, \phpbb\user $user)
{
$this->phpbb_root_path = $phpbb_root_path;
$this->config = $config;
$this->log = $log;
$this->user = $user;
$this->plupload_upload_path = $this->phpbb_root_path . $this->config['upload_path'] . '/plupload';
}
@ -67,8 +77,6 @@ class tidy_plupload extends \phpbb\cron\task\base
*/
public function run()
{
global $user, $phpbb_log;
// Remove old temporary file (perhaps failed uploads?)
$last_valid_timestamp = time() - $this->max_file_age;
try
@ -90,7 +98,7 @@ class tidy_plupload extends \phpbb\cron\task\base
}
catch (\UnexpectedValueException $e)
{
$phpbb_log->add('critical', $user->data['user_id'], $user->ip, 'LOG_PLUPLOAD_TIDY_FAILED', false, array(
$this->log->add('critical', $this->user->data['user_id'], $this->user->ip, 'LOG_PLUPLOAD_TIDY_FAILED', false, array(
$this->plupload_upload_path,
$e->getMessage(),
$e->getTraceAsString()