added it_delete_user_with_all_data test

This commit is contained in:
Peter Papp
2021-03-05 10:35:30 +01:00
parent 5844e66b7f
commit 779b7fc8ba
9 changed files with 191 additions and 59 deletions
+3 -39
View File
@@ -208,6 +208,7 @@ class UserController extends Controller
* @param DeleteUserRequest $request
* @param User $user
* @return ResponseFactory|Response
* @throws \Exception
*/
public function delete_user(DeleteUserRequest $request, User $user)
{
@@ -223,47 +224,10 @@ class UserController extends Controller
abort(406, "You can\'t delete your account");
}
// Validate user name
if ($user->name !== $request->input('data.name')) abort(403);
$shares = Share::where('user_id', $user->id)->get();
$files = File::withTrashed()
->where('user_id', $user->id)
->get();
$folders = Folder::withTrashed()
->where('user_id', $user->id)
->get();
// Remove all files and thumbnails
$files->each(function ($file) {
// Delete file
Storage::delete('/file-manager/' . $file->basename);
// Delete thumbnail if exist
if (!is_null($file->thumbnail)) {
Storage::delete('/file-manager/' . $file->getRawOriginal('thumbnail'));
}
// Delete file permanently
$file->forceDelete();
});
// Remove avatar
if ($user->avatar) {
Storage::delete('/avatars/' . $user->avatar);
if ($user->settings->name !== $request->name) {
abort(403, "The name you typed is wrong!");
}
// Remove folders & shares
$folders->each->forceDelete();
$shares->each->forceDelete();
// Remove favourites
$user->settings->delete();
$user->favourite_folders()->sync([]);
// Delete user
$user->delete();
return response('Done!', 204);
@@ -32,12 +32,12 @@ class FavouriteController extends Controller
// Add folder to user favourites
$user
->favourite_folders()
->favouriteFolders()
->syncWithoutDetaching($id);
}
// Return updated favourites
return response($user->favourite_folders, 204);
return response($user->favouriteFolders, 204);
}
/**
@@ -56,9 +56,9 @@ class FavouriteController extends Controller
}
// Remove folder from user favourites
$user->favourite_folders()->detach($id);
$user->favouriteFolders()->detach($id);
// Return updated favourites
return response($user->favourite_folders, 204);
return response($user->favouriteFolders, 204);
}
}