From 189f02ae9eee48bd2501c5b8e4d8c342b312e165 Mon Sep 17 00:00:00 2001 From: Bubka <858858+Bubka@users.noreply.github.com> Date: Fri, 20 Sep 2024 10:37:33 +0200 Subject: [PATCH] Add a user attribute to identify authentication by proxy --- app/Api/v1/Resources/UserResource.php | 14 ++++++++------ resources/js/router/middlewares/authGuard.js | 1 + resources/js/stores/user.js | 1 + resources/js/views/auth/Login.vue | 2 ++ 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/Api/v1/Resources/UserResource.php b/app/Api/v1/Resources/UserResource.php index bf8a0c10..b696f7c0 100644 --- a/app/Api/v1/Resources/UserResource.php +++ b/app/Api/v1/Resources/UserResource.php @@ -3,6 +3,7 @@ namespace App\Api\v1\Resources; use Illuminate\Http\Resources\Json\JsonResource; +use Illuminate\Support\Facades\Auth; /** * @property mixed $id @@ -23,12 +24,13 @@ class UserResource extends JsonResource public function toArray($request) { return [ - 'id' => $this->id, - 'name' => $this->name, - 'email' => $this->email, - 'oauth_provider' => $this->oauth_provider, - 'preferences' => $this->preferences, - 'is_admin' => $this->is_admin, + 'id' => $this->id, + 'name' => $this->name, + 'email' => $this->email, + 'oauth_provider' => $this->oauth_provider, + 'authenticated_by_proxy' => Auth::getDefaultDriver() === 'reverse-proxy-guard', + 'preferences' => $this->preferences, + 'is_admin' => $this->is_admin, ]; } } diff --git a/resources/js/router/middlewares/authGuard.js b/resources/js/router/middlewares/authGuard.js index 1ab26fd7..d74f7048 100644 --- a/resources/js/router/middlewares/authGuard.js +++ b/resources/js/router/middlewares/authGuard.js @@ -13,6 +13,7 @@ export default async function authGuard({ to, next, nextMiddleware, stores }) { name: currentUser.name, email: currentUser.email, oauth_provider: currentUser.oauth_provider, + authenticated_by_proxy: currentUser.authenticated_by_proxy, preferences: currentUser.preferences, isAdmin: currentUser.is_admin, }) diff --git a/resources/js/stores/user.js b/resources/js/stores/user.js index 135fe7a8..9f700275 100644 --- a/resources/js/stores/user.js +++ b/resources/js/stores/user.js @@ -16,6 +16,7 @@ export const useUserStore = defineStore({ name: undefined, email: undefined, oauth_provider: undefined, + authenticated_by_proxy: undefined, preferences: window.defaultPreferences, isAdmin: false, } diff --git a/resources/js/views/auth/Login.vue b/resources/js/views/auth/Login.vue index 8b8bee52..d31ef754 100644 --- a/resources/js/views/auth/Login.vue +++ b/resources/js/views/auth/Login.vue @@ -37,6 +37,7 @@ name: response.data.name, email: response.data.email, oauth_provider: response.data.oauth_provider, + authenticated_by_proxy: false, preferences: response.data.preferences, isAdmin: response.data.is_admin, }) @@ -67,6 +68,7 @@ name: response.data.name, email: response.data.email, oauth_provider: response.data.oauth_provider, + authenticated_by_proxy: false, preferences: response.data.preferences, isAdmin: response.data.is_admin, })