Make sure that files are removed when a task is deleted

This commit is contained in:
Frédéric Guillot 2014-05-25 18:27:18 -04:00
parent b6c4c93fe7
commit dbc4443bb1
2 changed files with 23 additions and 1 deletions

View File

@ -54,6 +54,22 @@ class File extends Base
return false;
}
/**
* Remove all files for a given task
*
* @access public
* @param integer $task_id Task id
* @return bool
*/
public function removeAll($task_id)
{
$files = $this->getAll($task_id);
foreach ($files as $file) {
$this->remove($file['id']);
}
}
/**
* Create a file entry in the database
*
@ -144,6 +160,7 @@ class File extends Base
public function upload($project_id, $task_id, $form_name)
{
$this->setup();
$result = array();
if (! empty($_FILES[$form_name])) {
@ -159,7 +176,7 @@ class File extends Base
if (@move_uploaded_file($uploaded_filename, self::BASE_PATH.$destination_filename)) {
return $this->create(
$result[] = $this->create(
$task_id,
$original_filename,
$destination_filename,
@ -169,5 +186,7 @@ class File extends Base
}
}
}
return count(array_unique($result)) === 1;
}
}

View File

@ -441,6 +441,9 @@ class Task extends Base
*/
public function remove($task_id)
{
$file = new File($this->db, $this->event);
$file->removeAll($task_id);
return $this->db->table(self::TABLE)->eq('id', $task_id)->remove();
}