diff --git a/app/Livewire/Admin/Index.php b/app/Livewire/Admin/Index.php new file mode 100644 index 000000000..174ce9e0f --- /dev/null +++ b/app/Livewire/Admin/Index.php @@ -0,0 +1,41 @@ +user()->isInstanceAdmin() === false && session('adminToken') === null) { + return redirect()->route('dashboard'); + } + $this->users = User::whereHas('teams', function ($query) { + $query->whereRelation('subscription', 'stripe_subscription_id', '!=', null); + })->get(); + } + public function switchUser(int $user_id) + { + $user = User::find($user_id); + auth()->login($user); + + if ($user_id === 0) { + session()->forget('adminToken'); + } else { + $token_payload = [ + 'valid' => true, + ]; + $token = Crypt::encrypt($token_payload); + session(['adminToken' => $token]); + } + return refreshSession(); + } + public function render() + { + return view('livewire.admin.index'); + } +} diff --git a/resources/views/components/navbar-subscription.blade.php b/resources/views/components/navbar-subscription.blade.php index 2e587be38..f1f68b50e 100644 --- a/resources/views/components/navbar-subscription.blade.php +++ b/resources/views/components/navbar-subscription.blade.php @@ -27,21 +27,17 @@
  • - +
  • -
    + @csrf
    diff --git a/resources/views/components/navbar.blade.php b/resources/views/components/navbar.blade.php index 9ff10d818..e4cafb6b9 100644 --- a/resources/views/components/navbar.blade.php +++ b/resources/views/components/navbar.blade.php @@ -139,26 +139,19 @@
  • @endif -
  • -
    - @csrf - - Logout -
    -
  • + - + @if (isCloud()) +
  • + + + + + +
  • + @endif
    @if (isInstanceAdmin() && !isCloud()) @persist('upgrade') @@ -178,7 +171,7 @@ -
  • +
  • - +
    +
  • + @csrf + +
  • +
    @endauth diff --git a/resources/views/livewire/admin/index.blade.php b/resources/views/livewire/admin/index.blade.php new file mode 100644 index 000000000..d2304ade4 --- /dev/null +++ b/resources/views/livewire/admin/index.blade.php @@ -0,0 +1,17 @@ +
    +

    Admin Dashboard

    +

    Who am I now?

    + {{ auth()->user()->name }} +

    Users

    +
    +
    + Root +
    + @foreach ($users as $user) +
    +

    {{ $user->name }}

    +

    {{ $user->email }}

    +
    + @endforeach +
    +
    diff --git a/routes/web.php b/routes/web.php index f32d88d7a..bb3ca6e34 100644 --- a/routes/web.php +++ b/routes/web.php @@ -11,6 +11,8 @@ use Illuminate\Support\Facades\Route; use App\Http\Controllers\Controller; use App\Http\Controllers\MagicController; + +use App\Livewire\Admin\Index as AdminIndex; use App\Livewire\Dev\Compose as Compose; use App\Livewire\Dashboard; @@ -77,6 +79,9 @@ use App\Livewire\Waitlist\Index as WaitlistIndex; if (isDev()) { Route::get('/dev/compose', Compose::class)->name('dev.compose'); } +if (isCloud()) { + Route::get('/admin', AdminIndex::class)->name('admin.index'); +} Route::post('/forgot-password', [Controller::class, 'forgot_password'])->name('password.forgot'); Route::get('/api/v1/test/realtime', [Controller::class, 'realtime_test'])->middleware('auth');