]> BookStack Code Mirror - bookstack/blobdiff - app/Exports/ImportRepo.php
ZIP Imports: Added listing, show view, delete, activity
[bookstack] / app / Exports / ImportRepo.php
index c8157967bc3783a3f3abf02471e67819deda8b05..d7e169ad1663b8327710c210e6a82090820a62ad 100644 (file)
@@ -6,6 +6,7 @@ use BookStack\Exceptions\ZipValidationException;
 use BookStack\Exports\ZipExports\ZipExportReader;
 use BookStack\Exports\ZipExports\ZipExportValidator;
 use BookStack\Uploads\FileStorage;
+use Illuminate\Database\Eloquent\Collection;
 use Symfony\Component\HttpFoundation\File\UploadedFile;
 
 class ImportRepo
@@ -15,6 +16,31 @@ class ImportRepo
     ) {
     }
 
+    /**
+     * @return Collection<Import>
+     */
+    public function getVisibleImports(): Collection
+    {
+        $query = Import::query();
+
+        if (!userCan('settings-manage')) {
+            $query->where('created_by', user()->id);
+        }
+
+        return $query->get();
+    }
+
+    public function findVisible(int $id): Import
+    {
+        $query = Import::query();
+
+        if (!userCan('settings-manage')) {
+            $query->where('created_by', user()->id);
+        }
+
+        return $query->findOrFail($id);
+    }
+
     public function storeFromUpload(UploadedFile $file): Import
     {
         $zipPath = $file->getRealPath();
@@ -45,4 +71,10 @@ class ImportRepo
 
         return $import;
     }
+
+    public function deleteImport(Import $import): void
+    {
+        $this->storage->delete($import->path);
+        $import->delete();
+    }
 }