From b6be6578c426efcbebbd4092f929f377964e8e46 Mon Sep 17 00:00:00 2001 From: Gbanyan Date: Fri, 28 Nov 2025 00:38:10 +0800 Subject: [PATCH] Restrict access to forbidden links and widgets based on roles - Wrapped Admin/Management navigation links in @role and @can permission checks. - Restricted dashboard 'Management/Ops' and 'Finance Application' widgets to authorized roles. - Applied granular visibility control to 'To-do' buckets on the dashboard for Applicant, Cashier, Accountant, and Chair. --- resources/views/dashboard.blade.php | 26 +++++++++++++++- resources/views/layouts/navigation.blade.php | 32 ++++++++++++++++++-- 2 files changed, 55 insertions(+), 3 deletions(-) diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php index f373518..0051ad9 100644 --- a/resources/views/dashboard.blade.php +++ b/resources/views/dashboard.blade.php @@ -11,9 +11,11 @@ 我的會籍/繳費 + @can('create_finance_documents') 建立財務申請 + @endcan @@ -40,6 +42,7 @@ + @if(Auth::user()->can('create_finance_documents') || Auth::user()->can('view_finance_documents'))
@@ -49,15 +52,21 @@ 💼
+ @can('create_finance_documents') 新增申請 + @endcan + @can('view_finance_documents') 查看案件列表 + @endcan
+ @endif + @if(Auth::user()->hasRole(['admin', 'membership_manager']) || Auth::user()->can('view_audit_logs'))
@@ -67,28 +76,35 @@ 🛡️
+ @hasrole('admin|membership_manager') 會員管理 + @endhasrole + @role('admin') 角色與權限 審計日誌 + @endrole
+ @endif
+ @if(Auth::user()->hasRole(['admin', 'finance_cashier', 'payment_cashier', 'finance_accountant', 'payment_accountant', 'finance_chair', 'payment_chair']) || Auth::user()->can('create_finance_documents'))
-

待辦總覽(所有角色可見)

+

待辦總覽

依職責挑選你需要處理的事項。

+ @can('create_finance_documents')

申請人 / 會員

📝 @@ -99,6 +115,8 @@
  • 查看會籍與繳費紀錄
  • + @endcan + @hasrole('finance_cashier|payment_cashier|admin')

    出納

    💰 @@ -109,6 +127,8 @@
  • 填寫現金簿/匯出報表
  • + @endhasrole + @hasrole('finance_accountant|payment_accountant|admin')

    會計

    📊 @@ -119,6 +139,8 @@
  • 建立交易分錄
  • + @endhasrole + @hasrole('finance_chair|payment_chair|admin')

    理事長/理事

    @@ -129,8 +151,10 @@
  • 角色/權限檢視
  • + @endhasrole
    + @endif
    diff --git a/resources/views/layouts/navigation.blade.php b/resources/views/layouts/navigation.blade.php index edcc9a4..2067bf1 100644 --- a/resources/views/layouts/navigation.blade.php +++ b/resources/views/layouts/navigation.blade.php @@ -24,7 +24,7 @@ {{ __('Documents') }} - @if(Auth::user()) + @if(Auth::user() && (Auth::user()->hasRole(['admin', 'membership_manager', 'finance_accountant', 'staff']) || Auth::user()->canAny(['view_finance_documents', 'view_accounting_transactions', 'manage_system_settings'])))