public function test_valid_id_removeMissingFile() { $this->model->shouldReceive("file_exists")->with("/invalid/path/file-1")->once()->andReturn(false); $this->model->shouldReceive("delete_data_id")->with("file-hash-1-1")->once(); $ret = \service\files::valid_id($this->filedata, $this->config, $this->model, 505); $this->t->is($ret, false, "missing file should be removed"); }
function cron() { if (!$this->input->is_cli_request()) { return; } $tarball_dir = $this->config->item("upload_path") . "/special/multipaste-tarballs"; if (is_dir($tarball_dir)) { $tarball_cache_time = $this->config->item("tarball_cache_time"); $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($tarball_dir), RecursiveIteratorIterator::SELF_FIRST); foreach ($it as $file) { if ($file->isFile()) { if ($file->getMTime() < time() - $tarball_cache_time) { $lock = fopen($file, "r+"); flock($lock, LOCK_EX); unlink($file); flock($lock, LOCK_UN); } } } } $oldest_time = time() - $this->config->item('upload_max_age'); $oldest_session_time = time() - $this->config->item("sess_expiration"); $config = array("upload_max_age" => $this->config->item("upload_max_age"), "small_upload_size" => $this->config->item("small_upload_size"), "sess_expiration" => $this->config->item("sess_expiration")); $query = $this->db->select('file_storage_id storage_id, id, user, date')->from('files')->where("user", 0)->where("date <", $oldest_session_time)->get()->result_array(); foreach ($query as $row) { $row['data_id'] = $row['hash'] . '-' . $row['storage_id']; \service\files::valid_id($row, $config, $this->mfile, time()); } // 0 age disables age checks if ($this->config->item('upload_max_age') == 0) { return; } $query = $this->db->select('hash, files.id, user, files.date, file_storage.id storage_id')->from('files')->join('file_storage', "file_storage.id = files.file_storage_id")->where('files.date <', $oldest_time)->get()->result_array(); foreach ($query as $row) { $row['data_id'] = $row['hash'] . '-' . $row['storage_id']; \service\files::valid_id($row, $config, $this->mfile, time()); } }
public function valid_filedata($filedata) { return \service\files::valid_id($filedata, $this->id_validation_config, $this, time()); }