mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-11-22 14:31:26 +00:00
Update filesystems, store all files as public by default and add default permissions. Fixes #4273, #4275. Closes #3825
This commit is contained in:
parent
73aa01e8e0
commit
22da2647c7
10 changed files with 23 additions and 13 deletions
|
@ -532,7 +532,7 @@ class AdminController extends Controller
|
||||||
$emoji->save();
|
$emoji->save();
|
||||||
|
|
||||||
$fileName = $emoji->id . '.' . $request->emoji->extension();
|
$fileName = $emoji->id . '.' . $request->emoji->extension();
|
||||||
$request->emoji->storeAs('public/emoji', $fileName);
|
$request->emoji->storePubliclyAs('public/emoji', $fileName);
|
||||||
$emoji->media_path = 'emoji/' . $fileName;
|
$emoji->media_path = 'emoji/' . $fileName;
|
||||||
$emoji->save();
|
$emoji->save();
|
||||||
Cache::forget('pf:custom_emoji');
|
Cache::forget('pf:custom_emoji');
|
||||||
|
|
|
@ -260,7 +260,7 @@ class ApiV1Controller extends Controller
|
||||||
$file = $request->file('avatar');
|
$file = $request->file('avatar');
|
||||||
$path = "public/avatars/{$profile->id}";
|
$path = "public/avatars/{$profile->id}";
|
||||||
$name = strtolower(str_random(6)). '.' . $file->guessExtension();
|
$name = strtolower(str_random(6)). '.' . $file->guessExtension();
|
||||||
$request->file('avatar')->storeAs($path, $name);
|
$request->file('avatar')->storePubliclyAs($path, $name);
|
||||||
$av->media_path = "{$path}/{$name}";
|
$av->media_path = "{$path}/{$name}";
|
||||||
$av->save();
|
$av->save();
|
||||||
Cache::forget("avatar:{$profile->id}");
|
Cache::forget("avatar:{$profile->id}");
|
||||||
|
@ -1610,7 +1610,7 @@ class ApiV1Controller extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
$storagePath = MediaPathService::get($user, 2);
|
$storagePath = MediaPathService::get($user, 2);
|
||||||
$path = $photo->store($storagePath);
|
$path = $photo->storePublicly($storagePath);
|
||||||
$hash = \hash_file('sha256', $photo);
|
$hash = \hash_file('sha256', $photo);
|
||||||
$license = null;
|
$license = null;
|
||||||
$mime = $photo->getMimeType();
|
$mime = $photo->getMimeType();
|
||||||
|
@ -1815,7 +1815,7 @@ class ApiV1Controller extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
$storagePath = MediaPathService::get($user, 2);
|
$storagePath = MediaPathService::get($user, 2);
|
||||||
$path = $photo->store($storagePath);
|
$path = $photo->storePublicly($storagePath);
|
||||||
$hash = \hash_file('sha256', $photo);
|
$hash = \hash_file('sha256', $photo);
|
||||||
$license = null;
|
$license = null;
|
||||||
$mime = $photo->getMimeType();
|
$mime = $photo->getMimeType();
|
||||||
|
|
|
@ -112,7 +112,7 @@ class BaseApiController extends Controller
|
||||||
$name = $path['name'];
|
$name = $path['name'];
|
||||||
$public = $path['storage'];
|
$public = $path['storage'];
|
||||||
$currentAvatar = storage_path('app/'.$profile->avatar->media_path);
|
$currentAvatar = storage_path('app/'.$profile->avatar->media_path);
|
||||||
$loc = $request->file('upload')->storeAs($public, $name);
|
$loc = $request->file('upload')->storePubliclyAs($public, $name);
|
||||||
|
|
||||||
$avatar = Avatar::whereProfileId($profile->id)->firstOrFail();
|
$avatar = Avatar::whereProfileId($profile->id)->firstOrFail();
|
||||||
$opath = $avatar->media_path;
|
$opath = $avatar->media_path;
|
||||||
|
|
|
@ -30,7 +30,7 @@ class AvatarController extends Controller
|
||||||
$dir = $path['root'];
|
$dir = $path['root'];
|
||||||
$name = $path['name'];
|
$name = $path['name'];
|
||||||
$public = $path['storage'];
|
$public = $path['storage'];
|
||||||
$loc = $request->file('avatar')->storeAs($public, $name);
|
$loc = $request->file('avatar')->storePubliclyAs($public, $name);
|
||||||
|
|
||||||
$avatar = Avatar::firstOrNew(['profile_id' => $profile->id]);
|
$avatar = Avatar::firstOrNew(['profile_id' => $profile->id]);
|
||||||
$currentAvatar = $avatar->recentlyCreated ? null : storage_path('app/'.$profile->avatar->media_path);
|
$currentAvatar = $avatar->recentlyCreated ? null : storage_path('app/'.$profile->avatar->media_path);
|
||||||
|
|
|
@ -123,7 +123,7 @@ class ComposeController extends Controller
|
||||||
abort_if(in_array($photo->getMimeType(), $mimes) == false, 400, 'Invalid media format');
|
abort_if(in_array($photo->getMimeType(), $mimes) == false, 400, 'Invalid media format');
|
||||||
|
|
||||||
$storagePath = MediaPathService::get($user, 2);
|
$storagePath = MediaPathService::get($user, 2);
|
||||||
$path = $photo->store($storagePath);
|
$path = $photo->storePublicly($storagePath);
|
||||||
$hash = \hash_file('sha256', $photo);
|
$hash = \hash_file('sha256', $photo);
|
||||||
$mime = $photo->getMimeType();
|
$mime = $photo->getMimeType();
|
||||||
|
|
||||||
|
@ -209,7 +209,7 @@ class ComposeController extends Controller
|
||||||
$name = last($fragments);
|
$name = last($fragments);
|
||||||
array_pop($fragments);
|
array_pop($fragments);
|
||||||
$dir = implode('/', $fragments);
|
$dir = implode('/', $fragments);
|
||||||
$path = $photo->storeAs($dir, $name);
|
$path = $photo->storePubliclyAs($dir, $name);
|
||||||
$res = [
|
$res = [
|
||||||
'url' => $media->url() . '?v=' . time()
|
'url' => $media->url() . '?v=' . time()
|
||||||
];
|
];
|
||||||
|
|
|
@ -602,7 +602,7 @@ class DirectMessageController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
$storagePath = MediaPathService::get($user, 2) . Str::random(8);
|
$storagePath = MediaPathService::get($user, 2) . Str::random(8);
|
||||||
$path = $photo->store($storagePath);
|
$path = $photo->storePublicly($storagePath);
|
||||||
$hash = \hash_file('sha256', $photo);
|
$hash = \hash_file('sha256', $photo);
|
||||||
|
|
||||||
abort_if(MediaBlocklistService::exists($hash) == true, 451);
|
abort_if(MediaBlocklistService::exists($hash) == true, 451);
|
||||||
|
|
|
@ -93,7 +93,7 @@ trait Instagram
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$storagePath = "import/{$job->uuid}";
|
$storagePath = "import/{$job->uuid}";
|
||||||
$path = $v->store($storagePath);
|
$path = $v->storePublicly($storagePath);
|
||||||
DB::transaction(function() use ($profile, $job, $path, $original) {
|
DB::transaction(function() use ($profile, $job, $path, $original) {
|
||||||
$data = new ImportData;
|
$data = new ImportData;
|
||||||
$data->profile_id = $profile->id;
|
$data->profile_id = $profile->id;
|
||||||
|
@ -141,7 +141,7 @@ trait Instagram
|
||||||
return abort(500);
|
return abort(500);
|
||||||
}
|
}
|
||||||
$storagePath = "import/{$job->uuid}";
|
$storagePath = "import/{$job->uuid}";
|
||||||
$path = $media->store($storagePath);
|
$path = $media->storePublicly($storagePath);
|
||||||
$job->media_json = $path;
|
$job->media_json = $path;
|
||||||
$job->stage = 3;
|
$job->stage = 3;
|
||||||
$job->save();
|
$job->save();
|
||||||
|
|
|
@ -354,7 +354,7 @@ class StoryApiV1Controller extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
$storagePath = MediaPathService::story($user->profile);
|
$storagePath = MediaPathService::story($user->profile);
|
||||||
$path = $photo->storeAs($storagePath, Str::random(random_int(2, 12)) . '_' . Str::random(random_int(32, 35)) . '_' . Str::random(random_int(1, 14)) . '.' . $photo->extension());
|
$path = $photo->storePubliclyAs($storagePath, Str::random(random_int(2, 12)) . '_' . Str::random(random_int(32, 35)) . '_' . Str::random(random_int(1, 14)) . '.' . $photo->extension());
|
||||||
return $path;
|
return $path;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,7 +111,7 @@ class StoryComposeController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
$storagePath = MediaPathService::story($user->profile);
|
$storagePath = MediaPathService::story($user->profile);
|
||||||
$path = $photo->storeAs($storagePath, Str::random(random_int(2, 12)) . '_' . Str::random(random_int(32, 35)) . '_' . Str::random(random_int(1, 14)) . '.' . $photo->extension());
|
$path = $photo->storePubliclyAs($storagePath, Str::random(random_int(2, 12)) . '_' . Str::random(random_int(32, 35)) . '_' . Str::random(random_int(1, 14)) . '.' . $photo->extension());
|
||||||
if(in_array($photo->getMimeType(), ['image/jpeg','image/png'])) {
|
if(in_array($photo->getMimeType(), ['image/jpeg','image/png'])) {
|
||||||
$fpath = storage_path('app/' . $path);
|
$fpath = storage_path('app/' . $path);
|
||||||
$img = Intervention::make($fpath);
|
$img = Intervention::make($fpath);
|
||||||
|
|
|
@ -46,6 +46,16 @@ return [
|
||||||
'local' => [
|
'local' => [
|
||||||
'driver' => 'local',
|
'driver' => 'local',
|
||||||
'root' => storage_path('app'),
|
'root' => storage_path('app'),
|
||||||
|
'permissions' => [
|
||||||
|
'file' => [
|
||||||
|
'public' => 0644,
|
||||||
|
'private' => 0600,
|
||||||
|
],
|
||||||
|
'dir' => [
|
||||||
|
'public' => 0755,
|
||||||
|
'private' => 0700,
|
||||||
|
],
|
||||||
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
'public' => [
|
'public' => [
|
||||||
|
|
Loading…
Reference in a new issue