diff --git a/app/Console/Commands/SetupDevEnvironment.php b/app/Console/Commands/SetupDevEnvironment.php
index 03c283c6..7c2fd2bb 100644
--- a/app/Console/Commands/SetupDevEnvironment.php
+++ b/app/Console/Commands/SetupDevEnvironment.php
@@ -174,7 +174,7 @@ class SetupDevEnvironment extends Command
$shared_folder = Folder::factory(Folder::class)
->create([
'user_id' => $user->id,
- 'user_scope' => 'master',
+ 'author' => 'user',
'name' => 'Shared Folder',
'emoji' => [
"codes" => "1F680",
@@ -200,17 +200,17 @@ class SetupDevEnvironment extends Command
$peters_files = Folder::factory(Folder::class)
->create([
- 'user_id' => $user->id,
- 'parent_id' => $shared_folder->id,
- 'user_scope' => 'editor',
- 'name' => "Peter's Files",
+ 'user_id' => $user->id,
+ 'parent_id' => $shared_folder->id,
+ 'author' => 'visitor',
+ 'name' => "Peter's Files",
]);
// 2.
$random_pics = Folder::factory(Folder::class)
->create([
'user_id' => $user->id,
- 'user_scope' => 'master',
+ 'author' => 'user',
'name' => 'Random Pics',
'emoji' => [
'codes' => '1F4F7',
@@ -225,11 +225,11 @@ class SetupDevEnvironment extends Command
$nature = Folder::factory(Folder::class)
->create([
- 'user_id' => $user->id,
- 'parent_id' => $random_pics->id,
- 'user_scope' => 'master',
- 'name' => "Nature",
- 'emoji' => [
+ 'user_id' => $user->id,
+ 'parent_id' => $random_pics->id,
+ 'author' => 'user',
+ 'name' => "Nature",
+ 'emoji' => [
'codes' => '26F0',
'char' => '⛰',
'name' => 'mountain',
@@ -241,11 +241,11 @@ class SetupDevEnvironment extends Command
$apartments = Folder::factory(Folder::class)
->create([
- 'user_id' => $user->id,
- 'parent_id' => $random_pics->id,
- 'user_scope' => 'master',
- 'name' => "Apartments",
- 'emoji' => [
+ 'user_id' => $user->id,
+ 'parent_id' => $random_pics->id,
+ 'author' => 'user',
+ 'name' => "Apartments",
+ 'emoji' => [
'codes' => '1F3E0',
'char' => '🏠',
'name' => 'house',
@@ -259,65 +259,65 @@ class SetupDevEnvironment extends Command
$playable_media = Folder::factory(Folder::class)
->create([
'user_id' => $user->id,
- 'user_scope' => 'master',
+ 'author' => 'user',
'name' => 'Playable Media',
'created_at' => Carbon::now()->subMinutes(2),
]);
$video = Folder::factory(Folder::class)
->create([
- 'user_id' => $user->id,
- 'parent_id' => $playable_media->id,
- 'user_scope' => 'master',
- 'name' => "Video",
+ 'user_id' => $user->id,
+ 'parent_id' => $playable_media->id,
+ 'author' => 'user',
+ 'name' => "Video",
]);
$audio = Folder::factory(Folder::class)
->create([
- 'user_id' => $user->id,
- 'parent_id' => $playable_media->id,
- 'user_scope' => 'master',
- 'name' => "Audio",
+ 'user_id' => $user->id,
+ 'parent_id' => $playable_media->id,
+ 'author' => 'user',
+ 'name' => "Audio",
]);
// 4.
$multi_level = Folder::factory(Folder::class)
->create([
'user_id' => $user->id,
- 'user_scope' => 'master',
+ 'author' => 'user',
'name' => 'Multi Level Folder',
'created_at' => Carbon::now()->subMinutes(3),
]);
$first_level = Folder::factory(Folder::class)
->create([
- 'user_id' => $user->id,
- 'parent_id' => $multi_level->id,
- 'user_scope' => 'master',
- 'name' => "First Level",
+ 'user_id' => $user->id,
+ 'parent_id' => $multi_level->id,
+ 'author' => 'user',
+ 'name' => "First Level",
]);
$second_level = Folder::factory(Folder::class)
->create([
- 'user_id' => $user->id,
- 'parent_id' => $first_level->id,
- 'user_scope' => 'master',
- 'name' => "Second Level",
+ 'user_id' => $user->id,
+ 'parent_id' => $first_level->id,
+ 'author' => 'user',
+ 'name' => "Second Level",
]);
$third_level = Folder::factory(Folder::class)
->create([
- 'user_id' => $user->id,
- 'parent_id' => $second_level->id,
- 'user_scope' => 'master',
- 'name' => "Third Level",
+ 'user_id' => $user->id,
+ 'parent_id' => $second_level->id,
+ 'author' => 'user',
+ 'name' => "Third Level",
]);
// 5.
$documents = Folder::factory(Folder::class)
->create([
'user_id' => $user->id,
- 'user_scope' => 'master',
+ 'author' => 'user',
'name' => 'Documents',
'created_at' => Carbon::now()->subMinutes(4),
]);
@@ -337,7 +337,7 @@ class SetupDevEnvironment extends Command
$videohive = Folder::factory(Folder::class)
->create([
'user_id' => $user->id,
- 'user_scope' => 'master',
+ 'author' => 'user',
'name' => 'Videohive by MakingCG',
'created_at' => Carbon::now()->subMinutes(5),
]);
@@ -388,7 +388,7 @@ class SetupDevEnvironment extends Command
'name' => $file['name'],
'basename' => $basename,
'type' => 'file',
- 'user_scope' => 'master',
+ 'author' => 'user',
'mimetype' => $file['mimetype'],
'filesize' => rand(1000000, 4000000),
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
@@ -432,7 +432,7 @@ class SetupDevEnvironment extends Command
'name' => $file['name'],
'basename' => $basename,
'type' => 'file',
- 'user_scope' => 'master',
+ 'author' => 'user',
'mimetype' => $file['mimetype'],
'filesize' => rand(1000000, 4000000),
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
@@ -466,7 +466,7 @@ class SetupDevEnvironment extends Command
'name' => $file['name'],
'basename' => $basename,
'type' => 'file',
- 'user_scope' => 'master',
+ 'author' => 'user',
'mimetype' => $file['mimetype'],
'filesize' => rand(1000000, 4000000),
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
@@ -525,7 +525,7 @@ class SetupDevEnvironment extends Command
'name' => $file['name'],
'basename' => $basename,
'type' => 'file',
- 'user_scope' => 'editor',
+ 'author' => 'visitor',
'mimetype' => $file['mimetype'],
'filesize' => rand(1000000, 4000000),
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
@@ -553,7 +553,7 @@ class SetupDevEnvironment extends Command
'name' => $file,
'basename' => $basename,
'type' => 'video',
- 'user_scope' => 'master',
+ 'author' => 'user',
'mimetype' => 'mp4',
'filesize' => rand(1000000, 4000000),
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
@@ -578,7 +578,7 @@ class SetupDevEnvironment extends Command
'name' => $file,
'basename' => $basename,
'type' => 'video',
- 'user_scope' => 'master',
+ 'author' => 'user',
'mimetype' => 'mp4',
'filesize' => rand(1000000, 4000000),
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
@@ -603,7 +603,7 @@ class SetupDevEnvironment extends Command
'name' => $file,
'basename' => $basename,
'type' => 'audio',
- 'user_scope' => 'master',
+ 'author' => 'user',
'mimetype' => 'mp3',
'filesize' => rand(1000000, 4000000),
'created_at' => Carbon::now()->subMinutes(rand(1, 5)),
@@ -641,7 +641,7 @@ class SetupDevEnvironment extends Command
'name' => $file,
'basename' => $basename,
'type' => 'image',
- 'user_scope' => 'master',
+ 'author' => 'user',
'mimetype' => 'jpg',
'filesize' => rand(1000000, 4000000),
'thumbnail' => $this->helper->create_image_thumbnail("files/$user->id/$basename", $file, $user->id),
@@ -675,7 +675,7 @@ class SetupDevEnvironment extends Command
'name' => $file,
'basename' => $basename,
'type' => 'image',
- 'user_scope' => 'master',
+ 'author' => 'user',
'mimetype' => 'jpg',
'filesize' => rand(1000000, 4000000),
'thumbnail' => $this->helper->create_image_thumbnail("files/$user->id/$basename", $file, $user->id),
@@ -713,7 +713,7 @@ class SetupDevEnvironment extends Command
'name' => $file,
'basename' => $basename,
'type' => 'image',
- 'user_scope' => 'master',
+ 'author' => 'user',
'mimetype' => 'jpg',
'filesize' => rand(1000000, 4000000),
'thumbnail' => $this->helper->create_image_thumbnail("files/$user->id/$basename", $file, $user->id),
diff --git a/app/Http/Controllers/FileManager/BrowseController.php b/app/Http/Controllers/FileManager/BrowseController.php
index 57d69ddc..2889983e 100644
--- a/app/Http/Controllers/FileManager/BrowseController.php
+++ b/app/Http/Controllers/FileManager/BrowseController.php
@@ -162,7 +162,7 @@ class BrowseController extends Controller
{
return File::with(['parent'])
->where('user_id', Auth::id())
- ->whereUserScope('editor')
+ ->whereAuthor('visitor')
->sortable()
->get();
}
diff --git a/app/Models/File.php b/app/Models/File.php
index 0a816d00..8f40f29e 100644
--- a/app/Models/File.php
+++ b/app/Models/File.php
@@ -34,6 +34,10 @@ class File extends Model
'metadata' => 'array',
];
+ protected $hidden = [
+ 'author_id'
+ ];
+
/**
* Sortable columns
*
diff --git a/app/Models/Folder.php b/app/Models/Folder.php
index 557a0c3a..26b17a81 100644
--- a/app/Models/Folder.php
+++ b/app/Models/Folder.php
@@ -31,6 +31,10 @@ class Folder extends Model
'emoji' => 'array',
];
+ protected $hidden = [
+ 'author_id'
+ ];
+
/**
* Sortable columns
*
diff --git a/app/Services/DemoService.php b/app/Services/DemoService.php
index 3b765928..80e9a77a 100644
--- a/app/Services/DemoService.php
+++ b/app/Services/DemoService.php
@@ -29,20 +29,16 @@ class DemoService
*/
function create_folder($request)
{
- // Get variables
- $user_scope = $request->user() ? $request->user()->token()->scopes[0] : 'editor';
- $name = $request->has('name') ? $request->input('name') : 'New Folder';
-
return [
'user_id' => 1,
'id' => Str::uuid(),
'parent_id' => random_int(1000, 9999),
- 'name' => $name,
+ 'name' => $request->name,
'type' => 'folder',
- 'user_scope' => $user_scope,
+ 'author' => $request->user() ? 'user' : 'visitor',
'items' => '0',
- 'color' => isset($request->icon['color']) ? $request->icon['color'] : null,
- 'emoji' => isset($request->icon['emoji']) ? $request->icon['emoji'] : null,
+ 'color' => isset($request->icon['color']) ? $request->icon['color'] : null,
+ 'emoji' => isset($request->icon['emoji']) ? $request->icon['emoji'] : null,
'updated_at' => Carbon::now()->format('j M Y \a\t H:i'),
'created_at' => Carbon::now()->format('j M Y \a\t H:i'),
];
@@ -97,9 +93,6 @@ class DemoService
*/
function upload($request)
{
- // Get user data
- $user_scope = $request->user() ? $request->user()->token()->scopes[0] : 'editor';
-
// File
$file = $request->file('file');
$filename = Str::random() . '-' . str_replace(' ', '', $file->getClientOriginalName());
@@ -117,7 +110,7 @@ class DemoService
'filesize' => Metric::bytes($filesize)->format(),
'type' => $filetype,
'file_url' => 'https://vuefilemanager.hi5ve.digital/assets/vue-file-manager-preview.jpg',
- 'user_scope' => $user_scope,
+ 'author' => $request->user() ? 'user' : 'visitor',
'created_at' => Carbon::now()->format('j M Y \a\t H:i'),
'updated_at' => Carbon::now()->format('j M Y \a\t H:i'),
];
diff --git a/app/Services/FileManagerService.php b/app/Services/FileManagerService.php
index c2e0150d..b7b2a90a 100644
--- a/app/Services/FileManagerService.php
+++ b/app/Services/FileManagerService.php
@@ -166,21 +166,13 @@ class FileManagerService
*/
public function create_folder($request, $shared = null)
{
- // Get variables
- //$user_scope = is_null($shared) ? $request->user()->token()->scopes[0] : 'editor';
- $user_scope = is_null($shared) ? 'master' : 'editor';
-
- $name = $request->has('name') ? $request->input('name') : 'New Folder';
- $user_id = is_null($shared) ? Auth::id() : $shared->user_id;
-
return Folder::create([
- 'parent_id' => $request->parent_id,
- 'user_scope' => $user_scope,
- 'user_id' => $user_id,
- 'type' => 'folder',
- 'name' => $name,
- 'color' => $request->color ?? null,
- 'emoji' => $request->emoji ?? null,
+ 'parent_id' => $request->parent_id,
+ 'author' => $shared ? 'visitor' : 'user',
+ 'user_id' => $shared ? $shared->user_id : Auth::id(),
+ 'name' => $request->name,
+ 'color' => $request->color ?? null,
+ 'emoji' => $request->emoji ?? null,
]);;
}
@@ -196,7 +188,7 @@ class FileManagerService
public function rename_item($request, $id, $shared = null)
{
// Get user id
- $user_id = is_null($shared) ? Auth::id() : $shared->user_id;
+ $user_id = $shared ? $shared->user_id : Auth::id();
// Get item
$item = get_item($request->type, $id, $user_id);
@@ -396,9 +388,7 @@ class FileManagerService
$disk_local = Storage::disk('local');
// Get user data
- //$user_scope = is_null($shared) ? $request->user()->token()->scopes[0] : 'editor';
- $user_scope = is_null($shared) ? 'master' : 'editor';
- $user_id = is_null($shared) ? Auth::id() : $shared->user_id;
+ $user_id = $shared ? $shared->user_id : Auth::id();
// File Info
$file_size = $disk_local->size('chunks/' . $temp_filename);
@@ -427,16 +417,16 @@ class FileManagerService
// Return new file
return UserFile::create([
- 'mimetype' => get_file_type_from_mimetype($file_mimetype),
- 'type' => get_file_type($file_mimetype),
- 'folder_id' => $request->folder_id,
- 'metadata' => $metadata,
- 'name' => $user_file_name,
- 'basename' => $disk_file_name,
- 'user_scope' => $user_scope,
- 'thumbnail' => $thumbnail,
- 'filesize' => $file_size,
- 'user_id' => $user_id,
+ 'mimetype' => get_file_type_from_mimetype($file_mimetype),
+ 'type' => get_file_type($file_mimetype),
+ 'folder_id' => $request->folder_id,
+ 'metadata' => $metadata,
+ 'name' => $user_file_name,
+ 'basename' => $disk_file_name,
+ 'author' => $shared ? 'visitor' : 'user',
+ 'thumbnail' => $thumbnail,
+ 'filesize' => $file_size,
+ 'user_id' => $user_id,
]);
}
}
diff --git a/database/factories/FileFactory.php b/database/factories/FileFactory.php
index 93f7b6fb..503d8652 100644
--- a/database/factories/FileFactory.php
+++ b/database/factories/FileFactory.php
@@ -32,24 +32,12 @@ class FileFactory extends Factory
'type' => $this->faker->randomElement(
['image', 'file', 'video', 'audio']
),
- 'user_scope' => $this->faker->randomElement(
- ['master', 'editor', 'visitor']
+ 'author' => $this->faker->randomElement(
+ ['user', 'member', 'visitor']
),
'created_at' => $this->faker->dateTimeBetween(
$startDate = '-36 months', $endDate = 'now', $timezone = null
),
];
}
-
- /**
- * Configure the model factory.
- *
- * @return $this
- */
- public function configure()
- {
- return $this->afterCreating(function (File $file) {
- // TODO: add fake files
- });
- }
}
diff --git a/database/factories/FolderFactory.php b/database/factories/FolderFactory.php
index 4296ab56..e39be4d7 100644
--- a/database/factories/FolderFactory.php
+++ b/database/factories/FolderFactory.php
@@ -25,8 +25,8 @@ class FolderFactory extends Factory
'id' => $this->faker->uuid,
'user_id' => $this->faker->uuid,
'name' => $this->faker->word,
- 'user_scope' => $this->faker->randomElement(
- ['master', 'editor', 'visitor']
+ 'author' => $this->faker->randomElement(
+ ['user', 'member', 'visitor']
),
'created_at' => $this->faker->dateTimeBetween(
$startDate = '-36 months', $endDate = 'now', $timezone = null
diff --git a/database/migrations/2019_08_15_171328_create_file_manager_folders.php b/database/migrations/2019_08_15_171328_create_file_manager_folders.php
index 6b8234de..222a096c 100644
--- a/database/migrations/2019_08_15_171328_create_file_manager_folders.php
+++ b/database/migrations/2019_08_15_171328_create_file_manager_folders.php
@@ -21,8 +21,9 @@ class CreateFileManagerFolders extends Migration
$table->string('color')->nullable();
$table->longText('emoji')->nullable();
- // TODO: upravit user scope
- $table->enum('user_scope', ['master', 'editor', 'visitor'])->default('master');
+ $table->enum('author', ['user', 'member', 'visitor'])->default('user');
+ $table->uuid('author_id')->nullable();
+
$table->softDeletes();
$table->timestamps();
});
diff --git a/database/migrations/2019_08_15_171345_create_file_manager_files.php b/database/migrations/2019_08_15_171345_create_file_manager_files.php
index 722cdc8c..5ccaad72 100644
--- a/database/migrations/2019_08_15_171345_create_file_manager_files.php
+++ b/database/migrations/2019_08_15_171345_create_file_manager_files.php
@@ -20,7 +20,7 @@ class CreateFileManagerFiles extends Migration
$table->text('thumbnail')->nullable();
$table->text('name');
- $table->text('basename');
+ $table->string('basename')->index();
$table->text('mimetype')->nullable();
$table->text('filesize');
@@ -28,8 +28,8 @@ class CreateFileManagerFiles extends Migration
$table->text('type')->nullable();
$table->longText('metadata')->nullable();
- // TODO: upravit user scope
- $table->enum('user_scope', ['master', 'editor', 'visitor'])->default('master');
+ $table->enum('author', ['user', 'member', 'visitor'])->default('user');
+ $table->uuid('author_id')->nullable();
$table->softDeletes();
$table->timestamps();
diff --git a/public/mix-manifest.json b/public/mix-manifest.json
index b3b2854e..6af8298d 100644
--- a/public/mix-manifest.json
+++ b/public/mix-manifest.json
@@ -35,8 +35,8 @@
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js?id=7525a5201f806293a60a",
"/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~chunks/sha~8510f6c9.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~chunks/sha~8510f6c9.js?id=3e43db9b38c83dd03a3b",
"/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared/file-browser~chunks/user~9058a49f.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared/file-browser~chunks/user~9058a49f.js?id=68e8dbc0e27e1906a855",
- "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js?id=263e85f5dcb402029ca3",
- "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js?id=90193de08263e128d31a",
+ "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js?id=aacbc63eccff01afeada",
+ "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js?id=18ff204697459dad268d",
"/chunks/files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared/file-browser.js?id=3b49ff66accb15109d71",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=7f6474e743f5e147705a",
"/chunks/homepage.js": "/chunks/homepage.js?id=0851a272cec4302a3247",
@@ -88,16 +88,5 @@
"/chunks/users.js": "/chunks/users.js?id=9085e0306eafce8f9fce",
"/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~68e3c6cf.js": "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~68e3c6cf.js?id=b490efdc8470a6c2f625",
"/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~a4a4a595.js": "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~a4a4a595.js?id=be99c10088b00578891b",
- "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js?id=66afa0e341251a68c3d3",
- "/js/main.723fdf599ac2ecb35271.hot-update.js": "/js/main.723fdf599ac2ecb35271.hot-update.js",
- "/js/main.4a8fc01e2ff5a4e6ad28.hot-update.js": "/js/main.4a8fc01e2ff5a4e6ad28.hot-update.js",
- "/js/main.83e4a1fba24fb3ed581d.hot-update.js": "/js/main.83e4a1fba24fb3ed581d.hot-update.js",
- "/js/main.4cd1727b0d5ad436dba4.hot-update.js": "/js/main.4cd1727b0d5ad436dba4.hot-update.js",
- "/js/main.7e6541d1cbf9901a3e5a.hot-update.js": "/js/main.7e6541d1cbf9901a3e5a.hot-update.js",
- "/js/main.51418924870a080afea3.hot-update.js": "/js/main.51418924870a080afea3.hot-update.js",
- "/js/main.869d3fad73dd6fe243f9.hot-update.js": "/js/main.869d3fad73dd6fe243f9.hot-update.js",
- "/js/main.d7f2bec845fc64b7d5e4.hot-update.js": "/js/main.d7f2bec845fc64b7d5e4.hot-update.js",
- "/js/main.c788f898c265d85a0089.hot-update.js": "/js/main.c788f898c265d85a0089.hot-update.js",
- "/chunks/shared/single-file.8964da50e977b3d7d554.hot-update.js": "/chunks/shared/single-file.8964da50e977b3d7d554.hot-update.js",
- "/chunks/shared/single-file.c59a56c2ba7f3c2998b8.hot-update.js": "/chunks/shared/single-file.c59a56c2ba7f3c2998b8.hot-update.js"
+ "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js?id=66afa0e341251a68c3d3"
}
diff --git a/resources/js/components/FilesView/FileInfoPanel.vue b/resources/js/components/FilesView/FileInfoPanel.vue
index c13a1237..69a285bd 100644
--- a/resources/js/components/FilesView/FileInfoPanel.vue
+++ b/resources/js/components/FilesView/FileInfoPanel.vue
@@ -27,7 +27,7 @@
:content="fileInfoDetail[0].filesize">
-