feat: 管理端 RBAC 权限体系与员工管理

新增多角色权限控制(赛事/财务/客服管理员),支持员工 CRUD、路由菜单按权限显隐、审计日志范围过滤;登录返回角色与权限列表。玩家端赛事列表增加静默刷新避免图片闪烁。Seed 补充演示员工账号与充值相关权限。附带 RBAC/审计范围单元测试及 UAT 文档更新。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-15 17:52:39 +08:00
parent be5b4a4921
commit 567ec9ec8a
44 changed files with 1717 additions and 125 deletions

View File

@@ -333,28 +333,42 @@ export const adminPagesMs: Record<string, string> = {
'bet.col.result': 'Keputusan',
'audit.module_ph': 'cth. USERS, AGENTS',
'audit.col.time': 'Masa',
'audit.col.operator': 'Pengendali',
'audit.col.action': 'Tindakan',
'audit.col.module': 'Modul',
'audit.col.target_id': 'ID sasaran',
'audit.col.time': 'Masa',
'audit.col.ip': 'IP',
'audit.operator_system': 'Sistem',
'audit.operator_player': 'Pemain',
'audit.action.CREATE_PLAYER': 'Cipta pemain',
'audit.action.UPDATE_PLAYER': 'Kemas kini pemain',
'audit.action.DELETE_PLAYER': 'Padam pemain',
'audit.action.RESET_PLAYER_PASSWORD': 'Set semula kata laluan pemain',
'audit.action.RESET_DATABASE': 'Set semula pangkalan data',
'audit.action.CREATE_AGENT': 'Cipta ejen',
'audit.action.UPDATE_AGENT': 'Kemas kini ejen',
'audit.action.UPDATE_PLAYER_ACCOUNT_SETTINGS': 'Kemas kini tetapan akaun pemain',
'audit.action.UPDATE_AGENT_SUSPEND_SETTINGS': 'Kemas kini tetapan penggantungan ejen',
'audit.action.UPDATE_AGENT_HIERARCHY_SETTINGS': 'Kemas kini tetapan hierarki ejen',
'audit.action.UPDATE_BETTING_LIMITS': 'Kemas kini had pertaruhan',
'audit.action.CONFIRM_SETTLEMENT': 'Sahkan penyelesaian',
'audit.action.CONFIRM_RESETTLE': 'Sahkan penyelesaian semula',
'audit.action.CONFIRM_CASHBACK': 'Sahkan bayaran rebat',
'audit.action.CANCEL_CASHBACK': 'Batalkan kelompok rebat',
'audit.action.CREATE_STAFF': 'Cipta kakitangan',
'audit.action.UPDATE_STAFF': 'Kemas kini kakitangan',
'audit.action.PURGE_UNUSED_FILES': 'Padam media tidak digunakan',
'audit.action.FORGOT_PASSWORD_RESET': 'Pemain set semula kata laluan',
'audit.module.USERS': 'Pemain',
'audit.module.AGENTS': 'Ejen',
'audit.module.SYSTEM': 'Sistem',
'audit.module.SETTINGS': 'Tetapan',
'audit.module.SETTLEMENT': 'Penyelesaian',
'audit.module.CASHBACK': 'Rebat',
'audit.module.STAFF': 'Kakitangan',
'audit.module.MEDIA': 'Media',
'audit.module.identity': 'Identiti',
'cashback.start_date': 'Tarikh mula',
'cashback.end_date': 'Tarikh tamat',