public function permDeleteFiles($fileId) { $this->load->helper('file'); $userPermObj = new User_Perms_Model($this->session->id); if (!$userPermObj->userObj->isRoot()) { $error = array('status' => 'error', 'msg' => 'You do not have permission to delete this file'); return json_encode($error); exit; } // all ok, proceed! if (isset($fileId)) { if ($userPermObj->canAdmin($fileId)) { $fileObj = new Document_Model($fileId); $location = $fileObj->getLocation(); // delete from db $data = array('id' => $fileId); $this->db->delete('documents', $data); $this->db->delete('log', $data); $data = array('fid' => $fileId); $this->db->delete('dept_perms', $data); $this->db->delete('user_perms', $data); $realName = $fileObj->getBaseName(); $ext = $fileObj->getExt(); if (is_file($this->config->item('archiveDir') . $location)) { unlink($this->config->item('archiveDir') . $location); } if (is_file($this->config->item('dataDir') . 'pdf/' . $realName . '.pdf')) { unlink($this->config->item('dataDir') . 'pdf/' . $realName . '.pdf'); } if (is_file($this->config->item('dataDir') . 'thumbnails/' . $realName . '.png')) { unlink($this->config->item('dataDir') . 'thumbnails/' . $realName . '.png'); } if ($ext == 'docx') { if (is_file($this->config->item('archiveDir') . $realName . '.odt')) { unlink($this->config->item('archiveDir') . $realName . '.odt'); } if (is_file($this->config->item('archiveDir') . $realName . '.html')) { unlink($this->config->item('archiveDir') . $realName . '.html'); } } if (is_dir($this->config->item('revisionDir') . $fileId . '/')) { delete_files($this->config->item('revisionDir') . $fileId . '/', true); } return true; } } return false; }