diff --git a/database/seeders/RoleSeeder.php b/database/seeders/RoleSeeder.php index 6f46764..50859d9 100644 --- a/database/seeders/RoleSeeder.php +++ b/database/seeders/RoleSeeder.php @@ -58,8 +58,6 @@ class RoleSeeder extends Seeder 'menu.reservation', 'menu.special-permission', 'menu.special-permission.clear-stock', - 'menu.special-permission.apk-versions', - 'menu.special-permission.discord-notifications', 'menu.basic', 'menu.basic.machines', 'menu.basic.payment-configs', @@ -123,10 +121,6 @@ class RoleSeeder extends Seeder 'menu.reservation', 'menu.special-permission', 'menu.special-permission.clear-stock', - 'menu.special-permission.apk-versions', - 'menu.special-permission.discord-notifications', - 'menu.basic.discord-notifications', - 'menu.basic.apk-versions', ]); } } \ No newline at end of file diff --git a/lang/en.json b/lang/en.json index 7fb4709..40e204d 100644 --- a/lang/en.json +++ b/lang/en.json @@ -2361,9 +2361,7 @@ "menu.sales.records": "Sales Records", "menu.sales.store-gifts": "Store Gifts", "menu.special-permission": "Special Permissions", - "menu.special-permission.apk-versions": "APK Versions", "menu.special-permission.clear-stock": "Clear Stock", - "menu.special-permission.discord-notifications": "Discord Notifications", "menu.warehouses": "Warehouse Management", "menu.warehouses.inventory": "Inventory Management", "menu.warehouses.machine-inventory": "Machine Inventory Overview", diff --git a/lang/ja.json b/lang/ja.json index 9d75944..5856093 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -2361,9 +2361,7 @@ "menu.sales.records": "販売記録", "menu.sales.store-gifts": "来店ギフト", "menu.special-permission": "特別権限", - "menu.special-permission.apk-versions": "APKバージョン", "menu.special-permission.clear-stock": "在庫クリア", - "menu.special-permission.discord-notifications": "Discord通知", "menu.warehouses": "倉庫管理", "menu.warehouses.inventory": "在庫管理", "menu.warehouses.machine-inventory": "機器在庫概要", diff --git a/lang/zh_TW.json b/lang/zh_TW.json index c8dd558..e025f01 100644 --- a/lang/zh_TW.json +++ b/lang/zh_TW.json @@ -2361,9 +2361,7 @@ "menu.sales.records": "銷售紀錄", "menu.sales.store-gifts": "來店禮", "menu.special-permission": "特殊權限", - "menu.special-permission.apk-versions": "APK版本", "menu.special-permission.clear-stock": "庫存清空", - "menu.special-permission.discord-notifications": "Discord通知", "menu.warehouses": "倉儲管理", "menu.warehouses.inventory": "庫存管理", "menu.warehouses.machine-inventory": "機台庫存概覽", diff --git a/scratch/dedupe_lang.py b/scratch/dedupe_lang.py deleted file mode 100644 index 6022d1b..0000000 --- a/scratch/dedupe_lang.py +++ /dev/null @@ -1,253 +0,0 @@ -import json -import os - -files = { - 'zh_TW': '/home/mama/projects/star-cloud/lang/zh_TW.json', - 'en': '/home/mama/projects/star-cloud/lang/en.json', - 'ja': '/home/mama/projects/star-cloud/lang/ja.json' -} - -new_keys = { - "CREATE STOCK TRANSFERS BETWEEN WAREHOUSES AND MACHINE RETURNS": { - "zh_TW": "建立倉庫間調撥或機台退庫單", - "en": "Create stock transfers between warehouses and machine returns", - "ja": "倉庫間の転送および機台からの返品伝票を作成" - }, - "Create and manage replenishment orders from warehouse to machines": { - "zh_TW": "建立並管理從倉庫到機台的補貨單", - "en": "Create and manage replenishment orders from warehouse to machines", - "ja": "倉庫から機台への補充伝票の作成と管理" - }, - "Create stock transfers between warehouses and machine returns": { - "zh_TW": "建立倉庫間調撥或機台退庫單", - "en": "Create stock transfers between warehouses and machine returns", - "ja": "倉庫間の転送および機台からの返品伝票を作成" - }, - "Create Transfer Order": { - "zh_TW": "建立調撥單", - "en": "Create Transfer Order", - "ja": "転送伝票を作成" - }, - "Create Replenishment Order": { - "zh_TW": "建立補貨單", - "en": "Create Replenishment Order", - "ja": "補充伝票を作成" - }, - "New Transfer": { - "zh_TW": "新增調撥單", - "en": "New Transfer", - "ja": "新規転送" - }, - "New Replenishment": { - "zh_TW": "新增補貨單", - "en": "New Replenishment", - "ja": "新規補充" - }, - "New Stock-In Order": { - "zh_TW": "新增進貨單", - "en": "New Stock-In Order", - "ja": "新規入庫伝票" - }, - "No transfer orders found": { - "zh_TW": "查無調撥單紀錄", - "en": "No transfer orders found", - "ja": "転送伝票が見つかりません" - }, - "No replenishment orders found": { - "zh_TW": "查無補貨單紀錄", - "en": "No replenishment orders found", - "ja": "補充伝票が見つかりません" - }, - "No stock data found": { - "zh_TW": "查無庫存資料", - "en": "No stock data found", - "ja": "在庫データが見つかりません" - }, - "No stock-in orders found": { - "zh_TW": "查無進貨單紀錄", - "en": "No stock-in orders found", - "ja": "入庫伝票が見つかりません" - }, - "No movement records found": { - "zh_TW": "查無異動紀錄", - "en": "No movement records found", - "ja": "移動履歴が見つかりません" - }, - "Replenishment Orders": { - "zh_TW": "機台補貨單", - "en": "Replenishment Orders", - "ja": "機台補充伝票" - }, - "Search products...": { - "zh_TW": "搜尋商品...", - "en": "Search products...", - "ja": "商品を検索..." - }, - "Search Product": { - "zh_TW": "搜尋商品", - "en": "Search Product", - "ja": "商品を検索" - }, - "Select Warehouse": { - "zh_TW": "選擇倉庫", - "en": "Select Warehouse", - "ja": "倉庫を選択" - }, - "Select Machine": { - "zh_TW": "選擇機台", - "en": "Select Machine", - "ja": "機台を選択" - }, - "Select Product": { - "zh_TW": "選擇商品", - "en": "Select Product", - "ja": "商品を選択" - }, - "Source Warehouse": { - "zh_TW": "來源倉庫", - "en": "Source Warehouse", - "ja": "発送元倉庫" - }, - "Target Warehouse": { - "zh_TW": "目標倉庫", - "en": "Target Warehouse", - "ja": "対象倉庫" - }, - "Stock-In Orders": { - "zh_TW": "進貨單管理", - "en": "Stock-In Orders", - "ja": "入庫伝票" - }, - "Stock-In Management": { - "zh_TW": "進貨管理", - "en": "Stock-In Management", - "ja": "入庫管理" - }, - "Stock flow history": { - "zh_TW": "庫存流向歷史", - "en": "Stock flow history", - "ja": "在庫移動履歴" - }, - "Stock-In Orders Tab": { - "zh_TW": "進貨單管理", - "en": "Stock-In Orders", - "ja": "入庫伝票" - }, - "Transfer Orders": { - "zh_TW": "調撥單管理", - "en": "Transfer Orders", - "ja": "転送伝票" - }, - "Track stock-in orders and movement history": { - "zh_TW": "追蹤進貨單據與庫存異動紀錄", - "en": "Track stock-in orders and movement history", - "ja": "入庫伝票および移動履歴の追跡" - }, - "Warehouse to Warehouse": { - "zh_TW": "倉庫對倉庫", - "en": "Warehouse to Warehouse", - "ja": "倉庫間転送" - }, - "Warehouse Transfer": { - "zh_TW": "倉庫調撥", - "en": "Warehouse Transfer", - "ja": "倉庫転送" - }, - "Warehouse Management": { - "zh_TW": "倉儲管理", - "en": "Warehouse Management", - "ja": "倉庫管理" - }, - "Warehouse purchase records": { - "zh_TW": "倉庫採購進貨紀錄", - "en": "Warehouse purchase records", - "ja": "倉庫購入記録" - }, - "Machine to Warehouse": { - "zh_TW": "機台對倉庫", - "en": "Machine to Warehouse", - "ja": "機台から倉庫" - }, - "Machine Return": { - "zh_TW": "機台退庫", - "en": "Machine Return", - "ja": "機台返品" - }, - "Machine Replenishment": { - "zh_TW": "機台補貨單", - "en": "Machine Replenishment", - "ja": "機台補充" - }, - "Movement History": { - "zh_TW": "異動紀錄", - "en": "Movement History", - "ja": "移動履歴" - }, - "Movement Logs": { - "zh_TW": "異動紀錄", - "en": "Movement Logs", - "ja": "移動ログ" - }, - "Manage stock transfers between warehouses and machine returns": { - "zh_TW": "建立倉庫間調撥或機台退庫單", - "en": "Manage stock transfers between warehouses and machine returns", - "ja": "倉庫間の転送および機台からの返品伝票を作成" - }, - "Main": { - "zh_TW": "總倉", - "en": "Main", - "ja": "総倉庫" - }, - "Note": { - "zh_TW": "備註", - "en": "Note", - "ja": "備考" - }, - "Transfer Audit": { - "zh_TW": "調撥單", - "en": "Transfer Audit", - "ja": "転送監査" - }, - "Transfers": { - "zh_TW": "調撥單", - "en": "Transfers", - "ja": "転送" - }, - "Inventory Management": { - "zh_TW": "庫存管理", - "en": "Inventory Management", - "ja": "在庫管理" - }, - "Manage stock levels, stock-in orders, and movement history": { - "zh_TW": "追蹤庫存水位、進貨單與異動紀錄", - "en": "Manage stock levels, stock-in orders, and movement history", - "ja": "在庫レベル、入庫伝票、および移動履歴の管理" - }, - "Track stock levels, stock-in orders, and movement history": { - "zh_TW": "追蹤庫存水位、進貨單與異動紀錄", - "en": "Track stock levels, stock-in orders, and movement history", - "ja": "在庫レベル、入庫伝票、および移動履歴の追跡" - } -} - -for lang, path in files.items(): - if not os.path.exists(path): - continue - - with open(path, 'r', encoding='utf-8') as f: - data = json.load(f) - - # Update menu.warehouses - if lang == 'zh_TW': - data['menu.warehouses'] = "倉儲管理" - - # Add/Update keys - for k, v in new_keys.items(): - if lang in v: - data[k] = v[lang] - elif lang == 'en': - data[k] = k - - # Sort keys and write back - with open(path, 'w', encoding='utf-8') as f: - json.dump(data, f, ensure_ascii=False, indent=4, sort_keys=True) diff --git a/scratch/test_breadcrumbs.php b/scratch/test_breadcrumbs.php deleted file mode 100644 index e76c2e6..0000000 --- a/scratch/test_breadcrumbs.php +++ /dev/null @@ -1,66 +0,0 @@ - __('Dashboard'), - 'url' => '/admin/dashboard', - 'active' => $routeName === 'admin.dashboard' - ]; - - $moduleMap = [ - 'admin.warehouses' => __('Warehouse Management'), - // ... simplified - ]; - - $foundModule = null; - foreach ($moduleMap as $prefix => $label) { - if (str_starts_with($routeName, $prefix)) { - $foundModule = [ - 'label' => $label, - 'url' => '#', - 'active' => false - ]; - break; - } - } - - if ($foundModule) { - $links[] = $foundModule; - } - - $segments = explode('.', $routeName); - $lastSegment = end($segments); - - // Simplifed page labels - $pageLabel = match($lastSegment) { - 'inventory' => __('Inventory Management'), - 'index' => 'Warehouse Overview', - default => null, - }; - - if ($pageLabel) { - $links[] = [ - 'label' => $pageLabel, - 'active' => true - ]; - } - - echo "Route: $routeName\n"; - foreach ($links as $link) { - echo " - " . $link['label'] . ($link['active'] ? " (active)" : "") . "\n"; - } - echo "\n"; -} - -testBreadcrumbs('admin.warehouses.inventory'); -testBreadcrumbs('admin.warehouses.index'); diff --git a/tests/Feature/Admin/DiscordNotificationSecurityTest.php b/tests/Feature/Admin/DiscordNotificationSecurityTest.php index 3ea2977..8de5368 100644 --- a/tests/Feature/Admin/DiscordNotificationSecurityTest.php +++ b/tests/Feature/Admin/DiscordNotificationSecurityTest.php @@ -61,6 +61,8 @@ class DiscordNotificationSecurityTest extends TestCase // 確保 tenantAdminTemplate 包含我們新加的 menu.basic.discord-notifications $tenantRole->syncPermissions($tenantAdminTemplate->permissions); + // 手動指派以測試有權限時的存取行為 (因現已改為比照機台設定預設不配給範本) + $tenantRole->givePermissionTo('menu.basic.discord-notifications'); $this->tenantAdmin->assignRole($tenantRole); // 5. 建立普通無此權限之帳號