Added content ID to export handlers

This is to enable for proper access control.
h5p/h5p-moodle-plugin#112
JI-92-path-fix
Frode Petterson 2016-09-08 13:32:57 +02:00
parent d946f32b81
commit 7fca1d100d
3 changed files with 10 additions and 8 deletions

View File

@ -144,7 +144,7 @@ class H5PDefaultStorage implements \H5PFileStorage {
* @param string $filename * @param string $filename
* Name of export file. * Name of export file.
*/ */
public function saveExport($source, $filename) { public function saveExport($source, $filename, $contentId) {
$this->deleteExport($filename); $this->deleteExport($filename);
self::dirReady("{$this->path}/exports"); self::dirReady("{$this->path}/exports");
copy($source, "{$this->path}/exports/{$filename}"); copy($source, "{$this->path}/exports/{$filename}");
@ -155,7 +155,7 @@ class H5PDefaultStorage implements \H5PFileStorage {
* *
* @param string $filename * @param string $filename
*/ */
public function deleteExport($filename) { public function deleteExport($filename, $contentId) {
$target = "{$this->path}/exports/{$filename}"; $target = "{$this->path}/exports/{$filename}";
if (file_exists($target)) { if (file_exists($target)) {
unlink($target); unlink($target);

View File

@ -80,15 +80,17 @@ interface H5PFileStorage {
* Path on file system to temporary export file. * Path on file system to temporary export file.
* @param string $filename * @param string $filename
* Name of export file. * Name of export file.
* @param int $contentId
*/ */
public function saveExport($source, $filename); public function saveExport($source, $filename, $contentId);
/** /**
* Removes given export file * Removes given export file
* *
* @param string $filename * @param string $filename
* @param int $contentId
*/ */
public function deleteExport($filename); public function deleteExport($filename, $contentId);
/** /**
* Will concatenate all JavaScrips and Stylesheets into two files in order * Will concatenate all JavaScrips and Stylesheets into two files in order

View File

@ -1434,7 +1434,7 @@ class H5PStorage {
*/ */
public function deletePackage($content) { public function deletePackage($content) {
$this->h5pC->fs->deleteContent($content['id']); $this->h5pC->fs->deleteContent($content['id']);
$this->h5pC->fs->deleteExport(($content['slug'] ? $content['slug'] . '-' : '') . $content['id'] . '.h5p'); $this->h5pC->fs->deleteExport(($content['slug'] ? $content['slug'] . '-' : '') . $content['id'] . '.h5p', $content['id']);
$this->h5pF->deleteContentData($content['id']); $this->h5pF->deleteContentData($content['id']);
} }
@ -1587,7 +1587,7 @@ Class H5PExport {
try { try {
// Save export // Save export
$this->h5pC->fs->saveExport($tmpFile, $content['slug'] . '-' . $content['id'] . '.h5p'); $this->h5pC->fs->saveExport($tmpFile, $content['slug'] . '-' . $content['id'] . '.h5p', $content['id']);
} }
catch (Exception $e) { catch (Exception $e) {
$this->h5pF->setErrorMessage($this->h5pF->t($e->getMessage())); $this->h5pF->setErrorMessage($this->h5pF->t($e->getMessage()));
@ -1633,7 +1633,7 @@ Class H5PExport {
* @param array $content object * @param array $content object
*/ */
public function deleteExport($content) { public function deleteExport($content) {
$this->h5pC->fs->deleteExport(($content['slug'] ? $content['slug'] . '-' : '') . $content['id'] . '.h5p'); $this->h5pC->fs->deleteExport(($content['slug'] ? $content['slug'] . '-' : '') . $content['id'] . '.h5p', $content['id']);
} }
/** /**
@ -1837,7 +1837,7 @@ class H5PCore {
$content['slug'] = $this->generateContentSlug($content); $content['slug'] = $this->generateContentSlug($content);
// Remove old export file // Remove old export file
$this->fs->deleteExport($content['id'] . '.h5p'); $this->fs->deleteExport($content['id'] . '.h5p', $content['id']);
} }
if ($this->exportEnabled) { if ($this->exportEnabled) {