@extends('layouts.app') @section('title', '系統設定') @push('styles') @endpush @section('content')
@if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif
{{-- ══ Sidebar ══ --}} {{-- ══ Content ══ --}}
{{-- ── 網站基本資訊 ── --}}
@csrf @method('PUT')

網站基本資訊

名稱、顏色與登入頁外觀

顯示於瀏覽器標題列與登入頁標題
Navbar、頁尾、Email 署名、PDF 報告使用
文字顏色自動對比
登入頁漸層
起始色 → 結束色
{{-- ── Logo 與 Favicon ── --}} {{-- ── 寄信設定 ── --}}
@csrf @method('PUT')

寄信設定(SMTP)

系統發送通知、審核信件的郵件伺服器

留空則保留原密碼
測試
{{-- ── 管理員通知信箱 ── --}}
@csrf @method('PUT')

管理員通知信箱

系統警告、申請審核等通知的統一收件人

設定後只有此信箱收到通知,不再廣播給所有管理員。
留空則維持原本寄給全部管理員的行為。
{{-- ── Google OAuth ── --}}
@csrf @method('PUT')

Google OAuth 登入

允許員工以 Google 帳號登入系統

get('login_google_enabled') === '1' ? 'checked' : '' }}>
關閉後登入頁不會顯示 Google 登入按鈕,App 端呼叫也會被拒絕
留空則保留原值
需與 Google Console「已授權的重新導向 URI」一致
Google/Apple 登入時,email 網域都要符合這裡才允許登入;多個網域用逗號分隔,不含 @

Apple 登入(Sign in with Apple)

給 App 上架審核用——iOS App 若提供其他第三方登入,Apple 規定要一併提供這個選項;業務上不一定需要,先建好、需要時再開

get('login_apple_enabled') === '1' ? 'checked' : '' }}>
關閉時 App 呼叫 /api/auth/apple 會直接被拒絕,不影響其他登入方式
iOS App 原生登入拿到的 identityToken,aud 欄位會是這個
Android(沒有原生 Apple SDK,套件改走網頁授權)用;沒有 Android 版可留空
{{-- ── GitLab ── --}}
@csrf @method('PUT')

GitLab

版本控制與專案管理整合

留空則保留原值
{{-- ── Web Push (VAPID) ── --}}
@csrf @method('PUT')

Web Push 推播(VAPID)

瀏覽器推播通知所需金鑰設定,下方另附原生 App(FCM)推播的設定狀態

說明
如需重新產生 VAPID 金鑰,請執行 php artisan webpush:vapid
前端 JS 的 applicationServerKey
留空則保留原值
手機 App 推播(FCM)
@if($fcmConfigured) 已設定 @else 尚未設定
原生 App(Android/iOS)背景推播不會送達,但不影響網頁版 Web Push 與聊天室其他功能。 請在 .env 設定 FIREBASE_CREDENTIALS 指向 Firebase Service Account JSON 檔案路徑後重新整理本頁確認。
@endif
{{-- ── FortiGate ── --}}
@csrf @method('PUT')

FortiGate 防火牆

VPN 帳號管理的 FortiGate API 連線設定

留空則保留原值
{{-- ── Redmine ── --}}
@csrf @method('PUT')

Redmine

專案管理與議題追蹤系統整合

留空則保留原值
{{-- ── 跨組織中間層 (Federation) ── --}}

跨組織中間層(Federation)

與 message.steps.tw 建立信任錨點,供跨組織訊息/通話使用

@if($s->get('federation_client_id'))
目前狀態
已註冊
org_id:{{ $s->get('federation_org_id') }} · client_id:{{ $s->get('federation_client_id') }}
@else
目前狀態
尚未註冊
@endif
跨組織訊息中間層的 base URL,一般不需變更
只有第一次註冊(或金鑰輪替後)需要,跟中間層是線下交換的
重新註冊會換發新的 client_secret,舊憑證立刻失效
中間層轉發訊息/通話 signaling 的目的地,通常不用改
動作
@csrf
@csrf @method('PUT')
逗號分隔多個對方公司 org_id。排程每 15 分鐘會向中間層拉取這些公司目前開放的通訊錄,「新對話」的「其他公司」分頁才搜尋得到人。
{{-- 測試信 Modal --}} @push('scripts') @endpush @endsection