diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index fedb723..2edd555 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -145,6 +145,13 @@ class ProfileController extends Controller { $user = $request->user(); + // Verify password if user has password + if (!is_null($user->password)) { + $request->validateWithBag('userDeletion', [ + 'password' => ['required', 'current_password'], + ]); + } + // Delete Playlist $playlists = Playlist::where('user_id', $user->id)->get(); foreach($playlists as $playlist) { @@ -155,6 +162,11 @@ class ProfileController extends Controller // Update comments to deleted user DB::table('comments')->where('commenter_id', '=', $user->id)->update(['commenter_id' => 1]); + // Delete Profile Picture + if ($user->avatar) { + Storage::disk('public')->delete($user->avatar); + } + Auth::logout(); $user->forceDelete(); diff --git a/resources/views/components/modal.blade.php b/resources/views/components/modal.blade.php index 384662a..568d7d2 100644 --- a/resources/views/components/modal.blade.php +++ b/resources/views/components/modal.blade.php @@ -46,7 +46,7 @@ $maxWidth = [ x-on:keydown.tab.prevent="$event.shiftKey || nextFocusable().focus()" x-on:keydown.shift.tab.prevent="prevFocusable().focus()" x-show="show" - class="fixed inset-0 overflow-y-auto px-4 py-6 sm:px-0 z-50" + class="fixed inset-0 overflow-y-auto px-4 py-12 sm:px-0 z-50" style="display: {{ $show ? 'block' : 'none' }};" >
-
+
merge(['type' => 'button', 'class' => 'inline-flex items-center px-4 py-2 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-500 rounded-md font-semibold text-xs text-gray-700 dark:text-gray-300 uppercase tracking-widest shadow-sm hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800 disabled:opacity-25 transition ease-in-out duration-150']) }}> + diff --git a/resources/views/profile/partials/delete-user-form.blade.php b/resources/views/profile/partials/delete-user-form.blade.php index 1496dc9..de65620 100644 --- a/resources/views/profile/partials/delete-user-form.blade.php +++ b/resources/views/profile/partials/delete-user-form.blade.php @@ -14,42 +14,4 @@ x-on:click.prevent="$dispatch('open-modal', 'confirm-user-deletion')" >{{ __('Delete Account') }} - -
- @csrf - @method('delete') - -

- {{ __('Are you sure you want to delete your account?') }} -

- -

- {{ __('Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.') }} -

- - {{--
- - - - - -
--}} - -
- - {{ __('Cancel') }} - - - - {{ __('Delete Account') }} - -
-
-
diff --git a/resources/views/profile/partials/delete-user-modal.blade.php b/resources/views/profile/partials/delete-user-modal.blade.php new file mode 100644 index 0000000..2f9e5f6 --- /dev/null +++ b/resources/views/profile/partials/delete-user-modal.blade.php @@ -0,0 +1,46 @@ + +
+ @csrf + @method('delete') + +

+ {{ __('Are you sure you want to delete your account?') }} +

+ + @if (is_null($user->password)) +

+ {{ __('Once your account is deleted, all of its resources and data will be permanently deleted.') }} +

+ @else +

+ {{ __('Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.') }} +

+ @endif + + @if (!is_null($user->password)) +
+ + + + + +
+ @endif + +
+ + {{ __('Cancel') }} + + + + {{ __('Delete Account') }} + +
+
+
\ No newline at end of file diff --git a/resources/views/profile/settings.blade.php b/resources/views/profile/settings.blade.php index 1b5d38e..81c4ac5 100644 --- a/resources/views/profile/settings.blade.php +++ b/resources/views/profile/settings.blade.php @@ -27,6 +27,7 @@
@include('profile.partials.delete-user-form')
+ @include('profile.partials.delete-user-modal')
@vite(['resources/js/user-blacklist.js']) diff --git a/routes/web.php b/routes/web.php index 8bda491..a22fc08 100644 --- a/routes/web.php +++ b/routes/web.php @@ -66,7 +66,7 @@ Route::middleware('auth')->group(function () { // User Profile Actions Route::get('/user/settings', [ProfileController::class, 'settings'])->name('profile.settings'); Route::patch('/user/settings', [ProfileController::class, 'update'])->name('profile.update'); - Route::post('/user/delete', [ProfileController::class, 'destroy'])->name('profile.delete'); + Route::delete('/user/delete', [ProfileController::class, 'destroy'])->name('profile.delete'); Route::post('/user/settings', [ProfileController::class, 'saveSettings'])->name('profile.settings.save'); Route::get('/user/blacklist', [UserApiController::class, 'getBlacklist'])->name('profile.blacklist'); Route::post('/user/blacklist', [ProfileController::class, 'saveBlacklist'])->name('profile.blacklist.save');