@extends('layouts.app') @php $currentUser = $user ?? Auth::user(); $currentRole = (string) ($currentUser->role ?? ''); $isAdminUser = \App\Support\WorkflowPermission::normalizeRole($currentRole) === \App\Support\WorkflowPermission::ROLE_ADMIN; $canManageBranding = \App\Support\WorkflowPermission::canUseAdminPermission( $currentRole, \App\Support\WorkflowPermission::ADMIN_PERMISSION_MANAGE_BRANDING ); $settingsTabs = [ 'profile' => ['icon' => 'mdi mdi-account-outline', 'label' => 'Profile'], ]; if ($isAdminUser) { $settingsTabs['general'] = ['icon' => 'mdi mdi-tune-variant', 'label' => 'General']; } if ($canManageBranding) { $settingsTabs['branding'] = ['icon' => 'mdi mdi-palette-outline', 'label' => 'Branding']; } $activeSettingsTab = (string) request()->query('tab', 'profile'); if (!array_key_exists($activeSettingsTab, $settingsTabs)) { $activeSettingsTab = 'profile'; } $settingsPageHeading = match ($activeSettingsTab) { 'general' => __('General Settings'), 'branding' => __('Branding'), default => __('Profile Settings'), }; $settingsPageSubheading = match ($activeSettingsTab) { 'general' => __('Configure system-wide settings.'), 'branding' => __('Manage each logo and the browser favicon independently across the system.'), default => __('Identity details are managed securely by UHS Account. Your profile photo remains managed in DTS.'), }; @endphp @section('title') {{ $settingsPageHeading }} @endsection @section('css') @include('profile.partials.settings-styles') @endsection @section('content') @php $displayRole = __(\App\Support\WorkflowPermission::roleLabelForAdmin((string) ($currentUser->role ?? 'user'))); $rawOrganizationName = trim((string) ($currentUser->organization_name ?? '')); $displayOrganization = ''; if ($rawOrganizationName !== '') { $locale = strtolower((string) app()->getLocale()); $organizationRecord = \App\Models\Organization::where('name', $rawOrganizationName)->first(); if ($organizationRecord) { $displayOrganization = $locale === 'kh' && trim((string) ($organizationRecord->name_kh ?? '')) !== '' ? $organizationRecord->name_kh : (trim((string) ($organizationRecord->name_en ?? '')) !== '' ? $organizationRecord->name_en : $rawOrganizationName); } else { $displayOrganization = $rawOrganizationName; } } $avatarUrl = $currentUser->avatarUrl(); $displayFirstName = trim((string) ($currentUser->first_name ?? '')); $displayLastName = trim((string) ($currentUser->last_name ?? '')); $displayName = trim($displayFirstName . ' ' . $displayLastName); $displayInitial = mb_strtoupper(mb_substr($displayName !== '' ? $displayName : (string) ($currentUser->name ?? 'U'), 0, 1)); @endphp

{{ $settingsPageHeading }}

{{ $settingsPageSubheading }}

@if(count($settingsTabs) > 1) @endif @if($isAdminUser && $activeSettingsTab === 'general') @include('profile.partials.general') @elseif($canManageBranding && $activeSettingsTab === 'branding') @include('profile.partials.branding') @else
@csrf
{{ $displayName }}

{{ $displayRole }}

{{ __('Email') }}
{{ $currentUser->email ?: '-' }}
{{ __('Role') }}
{{ $displayRole ?: '-' }}
{{ __('Organization') }}
{{ $displayOrganization !== '' ? $displayOrganization : '-' }}
{{ __('Created At') }}
{{ optional($currentUser->created_at)->format('Y-m-d H:i') ?: '-' }}
{{ __('Identity Information') }}

{{ __('Name, email, role, and password are synchronized from Keycloak whenever you sign in.') }}

{{ __('Managed by UHS Account') }}
{{ __('Open Keycloak to update your name, email, or password. Sign out and sign in again to synchronize your changes to DTS.') }}
@error('first_name') {{ $message }} @enderror
@error('last_name') {{ $message }} @enderror
@error('email') {{ $message }} @enderror
@error('avatar')
{{ $message }}
@enderror
{{ __('Account Security') }}

{{ __('Password and authentication settings are managed by Keycloak.') }}

{{ __('Manage your profile details, password, sessions, and account security on the UHS Account page.') }}
{{ __('Open UHS Account') }}
@endif @endsection @section('script') @if($activeSettingsTab !== 'profile') @if(session('success')) @endif @if(session('error')) @endif @endif @if($activeSettingsTab === 'profile') @include('profile.partials.settings-script') @endif @endsection