pageData($request)); } public function privacy(Request $request): Response { abort_unless(config('moonwell.legal.privacy_published'), 404); return Inertia::render('Legal/Privacy', $this->pageData($request)); } public function rules(Request $request): Response { abort_unless(config('moonwell.legal.rules_published'), 404); return Inertia::render('Legal/Rules', $this->pageData($request)); } /** * @return array */ private function pageData(Request $request): array { $user = $request->user(); return [ 'site' => [ 'name' => config('moonwell.realm.server_name'), 'tagline' => config('moonwell.realm.tagline'), ], 'auth' => [ 'authenticated' => $user !== null, 'username' => $user?->username, 'access_label' => $user?->accessLabel(), 'is_admin' => $user?->canAccessAdminPanel() ?? false, ], 'urls' => [ 'home' => route('landing.index'), 'login' => route('login'), 'cabinet' => route('cabinet.index'), 'admin' => route('admin.accounts.index'), 'logout' => route('logout'), 'offer' => config('moonwell.legal.offer_published') ? route('legal.offer') : null, 'privacy' => config('moonwell.legal.privacy_published') ? route('legal.privacy') : null, 'rules' => config('moonwell.legal.rules_published') ? route('legal.rules') : null, ], 'legal' => [ 'operator_name' => config('moonwell.legal.operator_name'), 'contact_email' => config('moonwell.legal.contact_email'), 'effective_date' => config('moonwell.legal.effective_date'), ], ]; } }