Add a user attribute to identify authentication by proxy

This commit is contained in:
Bubka 2024-09-20 10:37:33 +02:00
parent d629ed83c5
commit 189f02ae9e
4 changed files with 12 additions and 6 deletions

View File

@ -3,6 +3,7 @@
namespace App\Api\v1\Resources; namespace App\Api\v1\Resources;
use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\Auth;
/** /**
* @property mixed $id * @property mixed $id
@ -23,12 +24,13 @@ class UserResource extends JsonResource
public function toArray($request) public function toArray($request)
{ {
return [ return [
'id' => $this->id, 'id' => $this->id,
'name' => $this->name, 'name' => $this->name,
'email' => $this->email, 'email' => $this->email,
'oauth_provider' => $this->oauth_provider, 'oauth_provider' => $this->oauth_provider,
'preferences' => $this->preferences, 'authenticated_by_proxy' => Auth::getDefaultDriver() === 'reverse-proxy-guard',
'is_admin' => $this->is_admin, 'preferences' => $this->preferences,
'is_admin' => $this->is_admin,
]; ];
} }
} }

View File

@ -13,6 +13,7 @@ export default async function authGuard({ to, next, nextMiddleware, stores }) {
name: currentUser.name, name: currentUser.name,
email: currentUser.email, email: currentUser.email,
oauth_provider: currentUser.oauth_provider, oauth_provider: currentUser.oauth_provider,
authenticated_by_proxy: currentUser.authenticated_by_proxy,
preferences: currentUser.preferences, preferences: currentUser.preferences,
isAdmin: currentUser.is_admin, isAdmin: currentUser.is_admin,
}) })

View File

@ -16,6 +16,7 @@ export const useUserStore = defineStore({
name: undefined, name: undefined,
email: undefined, email: undefined,
oauth_provider: undefined, oauth_provider: undefined,
authenticated_by_proxy: undefined,
preferences: window.defaultPreferences, preferences: window.defaultPreferences,
isAdmin: false, isAdmin: false,
} }

View File

@ -37,6 +37,7 @@
name: response.data.name, name: response.data.name,
email: response.data.email, email: response.data.email,
oauth_provider: response.data.oauth_provider, oauth_provider: response.data.oauth_provider,
authenticated_by_proxy: false,
preferences: response.data.preferences, preferences: response.data.preferences,
isAdmin: response.data.is_admin, isAdmin: response.data.is_admin,
}) })
@ -67,6 +68,7 @@
name: response.data.name, name: response.data.name,
email: response.data.email, email: response.data.email,
oauth_provider: response.data.oauth_provider, oauth_provider: response.data.oauth_provider,
authenticated_by_proxy: false,
preferences: response.data.preferences, preferences: response.data.preferences,
isAdmin: response.data.is_admin, isAdmin: response.data.is_admin,
}) })