trypost/app/Http/Controllers/App/Settings/SettingsController.php

41 lines
1.2 KiB
PHP
Raw Normal View History

<?php
declare(strict_types=1);
namespace App\Http\Controllers\App\Settings;
use App\Enums\UserWorkspace\Role as WorkspaceRole;
use App\Http\Controllers\App\Controller;
use Illuminate\Http\Request;
use Inertia\Inertia;
use Inertia\Response;
class SettingsController extends Controller
{
public function index(Request $request): Response
{
$user = $request->user();
$workspace = $user?->currentWorkspace;
$workspaceRole = $workspace
? ($user->isAccountOwner() && $workspace->account_id === $user->account_id
? 'owner'
: $workspace->members()->where('users.id', $user->id)->first()?->pivot?->role)
: null;
$canManageWorkspace = $workspace && in_array(
$workspaceRole,
['owner', WorkspaceRole::Admin->value],
true,
);
return Inertia::render('settings/Index', [
'permissions' => [
'canManageProfile' => true,
'canManageWorkspace' => $canManageWorkspace,
'canManageAccount' => $user?->isAccountOwner() && ! config('trypost.self_hosted'),
],
]);
}
}