diff --git a/skolehjem/app/Http/Controllers/ResourceController.php b/skolehjem/app/Http/Controllers/ResourceController.php index 18615d7..0dd9a8c 100644 --- a/skolehjem/app/Http/Controllers/ResourceController.php +++ b/skolehjem/app/Http/Controllers/ResourceController.php @@ -101,6 +101,70 @@ class ResourceController extends Controller return $resource; } + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public static function storeMime(Request $request, ResourceCategory $category) + { + $file = $request->file("resource"); + + $resourceExtension = ResourceExtension::query()->where("extension", "=", $file->extension())->first(); + + //Create resourceExtension if it doesn't exist + if($resourceExtension === null) { + $category = substr($file->getMimeType(), 0, strpos($file->getMimeType(), "/")); + + $resourceCategory = ResourceCategory::query()->where("name", "=", $category)->first(); + + //If the uploaded file doesn't match the requested mime type + if($resourceCategory) { + if ($resourceCategory->name !== $category) + return null; + } else { + return null; + } + + //Create resourceCategory if it doesn't exist + if($resourceCategory === null){ + $data = [ + "name" => $category, + "description" => "", + "slug" => "" + ]; + + $resourceCategory = new ResourceCategory($data); + $resourceCategory->save(); + } + + $data = [ + "extension" => $file->extension(), + "description" => "", + "resource_category_id" => $resourceCategory->id + ]; + + $resourceExtension = new ResourceExtension($data); + $resourceExtension->save(); + } + + $resource = new Resource(); + + $resource->extension_id = $resourceExtension->id; + + $fileName = time().'_'.$file->getClientOriginalName(); + $filePath = $file->storeAs('uploads', $fileName, 'public'); + + /* /uploads/filename.ext */ + $resource->filename = '/' . $filePath; + + + $resource->save(); + + return $resource; + } + /** * Display the specified resource. * diff --git a/skolehjem/app/Http/Controllers/UserController.php b/skolehjem/app/Http/Controllers/UserController.php index 0d65e75..7639d0e 100644 --- a/skolehjem/app/Http/Controllers/UserController.php +++ b/skolehjem/app/Http/Controllers/UserController.php @@ -3,6 +3,8 @@ namespace App\Http\Controllers; use App\Helpers\Detector; +use App\ResourceCategory; +use App\ResourceExtension; use Illuminate\Database\Eloquent\Collection; use Illuminate\Http\Request; use Illuminate\Http\Response; @@ -338,8 +340,14 @@ class UserController extends Controller return redirect()->route("users.login")->with('success#passwordchange', '

Dit password er hermed ændret!

'); } } else if($request->file("resource")) { // Else if you're editing the profile pic - $user->update([ "resource_id" => ResourceController::store($request)->id ]); + $resource = ResourceController::storeMime($request, ResourceCategory::query()->where("name", "=", "image")->first()); + if($resource !== null) { + $user->update(["resource_id" => $resource->id]); + } + else { + return redirect()->route("users.accounteditpic"); + } return redirect()->route("users.account"); } else { // Else if you're not editing the password but anything else (Email, Phone Number). Then update user. diff --git a/skolehjem/resources/views/app/layout/base.blade.php b/skolehjem/resources/views/app/layout/base.blade.php index b52374c..69a0773 100644 --- a/skolehjem/resources/views/app/layout/base.blade.php +++ b/skolehjem/resources/views/app/layout/base.blade.php @@ -80,6 +80,12 @@ {{ __('msg.logud') }} + @yield("content") @if(request()->cookie("mode") == "dark") diff --git a/skolehjem/resources/views/app/washing-reservations/create.blade.php b/skolehjem/resources/views/app/washing-reservations/create.blade.php index f26adcb..5f6f70b 100644 --- a/skolehjem/resources/views/app/washing-reservations/create.blade.php +++ b/skolehjem/resources/views/app/washing-reservations/create.blade.php @@ -45,12 +45,14 @@