diff --git a/src/app/Http/Controllers/API/V4/Admin/UsersController.php b/src/app/Http/Controllers/API/V4/Admin/UsersController.php --- a/src/app/Http/Controllers/API/V4/Admin/UsersController.php +++ b/src/app/Http/Controllers/API/V4/Admin/UsersController.php @@ -421,4 +421,21 @@ 'message' => self::trans('app.user-update-success'), ]); } + + /** + * Inspect what kolab4 sees from the request. + * + * Useful for testing proxy settings and making sure the X-Forwarded-For Header is picked up. + * + * @return \Illuminate\Http\JsonResponse The response + */ + public function inspectRequest(Request $request) + { + return response()->json([ + 'ip' => $request->ip(), + 'clientIps' => $request->getClientIps(), + 'isFromTrustedProxy' => $request->isFromTrustedProxy(), + 'headers' => $request->headers->all() + ]); + } } diff --git a/src/routes/api.php b/src/routes/api.php --- a/src/routes/api.php +++ b/src/routes/api.php @@ -262,6 +262,16 @@ Route::get('stats/chart/{chart}', [API\V4\Admin\StatsController::class, 'chart']); } ); + + Route::group( + [ + 'domain' => 'admin.' . \config('app.website_domain'), + 'prefix' => 'v4', + ], + function () { + Route::get('inspect-request', [API\V4\Admin\UsersController::class, 'inspectRequest']); + } + ); } if (\config('app.with_reseller')) {