better impersonate
This commit is contained in:
@@ -21,16 +21,28 @@ class Index extends Component
|
|||||||
|
|
||||||
public function mount()
|
public function mount()
|
||||||
{
|
{
|
||||||
if (! isCloud()) {
|
if (! isCloud() && ! isDev()) {
|
||||||
return redirect()->route('dashboard');
|
return redirect()->route('dashboard');
|
||||||
}
|
}
|
||||||
|
if (Auth::id() !== 0 && ! session('impersonating')) {
|
||||||
if (Auth::id() !== 0) {
|
|
||||||
return redirect()->route('dashboard');
|
return redirect()->route('dashboard');
|
||||||
}
|
}
|
||||||
$this->getSubscribers();
|
$this->getSubscribers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function back()
|
||||||
|
{
|
||||||
|
if (session('impersonating')) {
|
||||||
|
session()->forget('impersonating');
|
||||||
|
$user = User::find(0);
|
||||||
|
$team_to_switch_to = $user->teams->first();
|
||||||
|
Auth::login($user);
|
||||||
|
refreshSession($team_to_switch_to);
|
||||||
|
|
||||||
|
return redirect(request()->header('Referer'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function submitSearch()
|
public function submitSearch()
|
||||||
{
|
{
|
||||||
if ($this->search !== '') {
|
if ($this->search !== '') {
|
||||||
@@ -52,9 +64,10 @@ class Index extends Component
|
|||||||
if (Auth::id() !== 0) {
|
if (Auth::id() !== 0) {
|
||||||
return redirect()->route('dashboard');
|
return redirect()->route('dashboard');
|
||||||
}
|
}
|
||||||
|
session(['impersonating' => true]);
|
||||||
$user = User::find($user_id);
|
$user = User::find($user_id);
|
||||||
$team_to_switch_to = $user->teams->first();
|
$team_to_switch_to = $user->teams->first();
|
||||||
Cache::forget("team:{$user->id}");
|
// Cache::forget("team:{$user->id}");
|
||||||
Auth::login($user);
|
Auth::login($user);
|
||||||
refreshSession($team_to_switch_to);
|
refreshSession($team_to_switch_to);
|
||||||
|
|
||||||
|
|||||||
@@ -340,7 +340,8 @@
|
|||||||
</li>
|
</li>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
@if (isCloud() && isInstanceAdmin())
|
@if (isCloud() || isDev())
|
||||||
|
@if (isInstanceAdmin() || session('impersonating'))
|
||||||
<li>
|
<li>
|
||||||
<a title="Admin" class="menu-item" href="/admin">
|
<a title="Admin" class="menu-item" href="/admin">
|
||||||
<svg class="text-pink-600 icon" viewBox="0 0 256 256"
|
<svg class="text-pink-600 icon" viewBox="0 0 256 256"
|
||||||
@@ -352,6 +353,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@endif
|
@endif
|
||||||
|
@endif
|
||||||
<div class="flex-1"></div>
|
<div class="flex-1"></div>
|
||||||
@if (isInstanceAdmin() && !isCloud())
|
@if (isInstanceAdmin() && !isCloud())
|
||||||
@persist('upgrade')
|
@persist('upgrade')
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
<div>
|
<div>
|
||||||
<h1>Admin Dashboard</h1>
|
<h1>Admin Dashboard</h1>
|
||||||
<h3 class="pt-4">Who am I now?</h3>
|
<div class="flex gap-2 pt-4">
|
||||||
<div class="pb-4">{{ auth()->user()->name }}</div>
|
<h3>Who am I now?</h3>
|
||||||
|
@if (session('impersonating'))
|
||||||
|
<x-forms.button wire:click="back">Go back to root</x-forms.button>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
<div class="pb-4">{{ auth()->user()->name }} ({{ auth()->user()->email }})</div>
|
||||||
<form wire:submit="submitSearch" class="flex flex-col gap-2 lg:flex-row">
|
<form wire:submit="submitSearch" class="flex flex-col gap-2 lg:flex-row">
|
||||||
<x-forms.input wire:model="search" placeholder="Search for a user" />
|
<x-forms.input wire:model="search" placeholder="Search for a user" />
|
||||||
<x-forms.button type="submit">Search</x-forms.button>
|
<x-forms.button type="submit">Search</x-forms.button>
|
||||||
|
|||||||
Reference in New Issue
Block a user