diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index ff7d9ef862..26e98e4ab3 100644 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -474,4 +474,28 @@ class UsersController extends Controller { return (new UsersTransformer)->transformUser($request->user()); } + + /** + * Restore a soft-deleted user. + * + * @author [A. Gianotto] [] + * @param int $userId + * @since [v6.0.0] + * @return JsonResponse + */ + public function restore($userId = null) + { + // Get asset information + $user = User::withTrashed()->find($userId); + $this->authorize('delete', $user); + if (isset($user->id)) { + // Restore the user + User::withTrashed()->where('id', $userId)->restore(); + + return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/users/message.success.restored'))); + + + } + return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/users/message.user_exists')), 200); + } } diff --git a/routes/api.php b/routes/api.php index 6f8d22a4d9..2d3731b7ca 100644 --- a/routes/api.php +++ b/routes/api.php @@ -896,6 +896,13 @@ Route::group(['prefix' => 'v1', 'middleware' => 'api'], function () { ] )->name('api.users.uploads'); + Route::post('{user}/restore', + [ + Api\UsersController::class, + 'restore' + ] + )->name('api.users.restore'); + }); Route::resource('users',