feat: better admin permissions (#5755)

* feat: add casbin admin permissions

* feat: improve audit logging to associate logs with actual operators and target users

* feat: enhance admin permissions and UI interactions for sensitive actions

* Refactor authz RBAC and tighten channel permissions

* Split channel authz field policy

* Address channel authz review findings
This commit is contained in:
Calcium-Ion
2026-06-27 17:01:59 +08:00
committed by GitHub
parent 6c35e1ef26
commit 4aee5f7d5a
52 changed files with 2778 additions and 255 deletions
+23 -3
View File
@@ -223,8 +223,10 @@
"Admin": "Quản trị viên",
"Admin access required": "Yêu cầu quyền truy cập Admin",
"Admin area": "Khu vực quản trị",
"Admin Channel Permissions": "Quyền kênh của quản trị viên",
"Admin notes (only visible to admins)": "Ghi chú của quản trị viên (chỉ hiển thị với quản trị viên)",
"Admin Only": "Chỉ dành cho quản trị viên",
"Admin Permissions": "Quyền quản trị viên",
"Administer user accounts and roles.": "Quản lý tài khoản người dùng và vai trò.",
"Administrator account": "Tài khoản quản trị viên",
"Administrator username": "Tên người dùng quản trị viên",
@@ -716,6 +718,7 @@
"Channel ID is required": "Cần có ID kênh",
"Channel key": "Khóa kênh",
"Channel key unlocked": "Khóa kênh đã được mở khóa",
"Channel Management": "Quản lý kênh",
"Channel models": "Mô hình kênh",
"Channel name is required": "Tên kênh là bắt buộc",
"Channel test completed": "Kiểm tra kênh hoàn tất",
@@ -1075,6 +1078,7 @@
"Create cache": "Tạo bộ nhớ đệm",
"Create cache ratio": "Tạo tỷ lệ bộ nhớ đệm",
"Create Channel": "Tạo Kênh",
"Create channels or edit keys, base URLs, and overrides.": "Tạo kênh hoặc chỉnh sửa khóa, URL cơ sở và quy tắc ghi đè.",
"Create Code": "Tạo Mã",
"Create credentials for the root user": "Tạo thông tin đăng nhập cho tài khoản quản trị",
"Create deployment": "Tạo triển khai",
@@ -1193,6 +1197,7 @@
"Default": "Mặc định",
"Default (New Frontend)": "Mặc định (Frontend mới)",
"Default / range": "Mặc định / khoảng",
"Default administrator permissions can be overridden for this user.": "Có thể ghi đè quyền quản trị viên mặc định cho người dùng này.",
"Default API Version *": "Phiên bản API mặc định *",
"Default API version for this channel": "Phiên bản API mặc định cho kênh này",
"Default Bearer": "Bearer mặc định",
@@ -1380,8 +1385,8 @@
"Drawing": "Vẽ",
"Drawing logs": "Nhật ký vẽ",
"Drawing Logs": "Nhật ký bản vẽ",
"Drawing task records": "Lịch sử tác vụ vẽ",
"Drawing task polling": "Thăm dò tác vụ vẽ",
"Drawing task records": "Lịch sử tác vụ vẽ",
"Duplicate": "Nhân bản",
"Duplicate group names: {{names}}": "Tên nhóm bị trùng: {{names}}",
"Duplicate source model mappings are not allowed": "Không cho phép ánh xạ mô hình nguồn trùng lặp",
@@ -1448,6 +1453,7 @@
"Edit API Shortcut": "Chỉnh sửa lối tắt API",
"Edit billing ratios and user-selectable groups in one table.": "Chỉnh sửa tỷ lệ tính phí và nhóm người dùng có thể chọn trong một bảng.",
"Edit Channel": "Chỉnh sửa Kênh",
"Edit channel routing": "Chỉnh sửa định tuyến kênh",
"Edit chat preset": "Chỉnh sửa cài đặt trước trò chuyện",
"Edit discount tier": "Chỉnh sửa bậc giảm giá",
"Edit FAQ": "Chỉnh sửa câu hỏi thường gặp",
@@ -1458,6 +1464,7 @@
"Edit model": "Chỉnh sửa mô hình",
"Edit Model": "Chỉnh sửa Mô hình",
"Edit model pricing": "Chỉnh sửa giá mô hình",
"Edit non-sensitive settings such as models, groups, and routing rules.": "Chỉnh sửa các thiết lập không nhạy cảm như mô hình, nhóm và quy tắc định tuyến.",
"Edit OAuth Provider": "Chỉnh Sửa Nhà Cung Cấp OAuth",
"Edit payment method": "Sửa phương thức thanh toán",
"Edit Prefill Group": "Chỉnh sửa Nhóm Điền sẵn",
@@ -1465,6 +1472,7 @@
"Edit ratio override": "Chỉnh sửa ghi đè tỷ lệ",
"Edit Rule": "Sửa quy tắc",
"Edit selectable group": "Chỉnh sửa nhóm có thể chọn",
"Edit sensitive channel settings": "Chỉnh sửa cài đặt kênh nhạy cảm",
"Edit Tag": "Chỉnh sửa Thẻ",
"Edit Tag:": "Chỉnh sửa thẻ:",
"Edit Uptime Kuma Group": "Chỉnh sửa Nhóm Uptime Kuma",
@@ -2799,6 +2807,7 @@
"No payment methods configured. Click \"Add method\" or use templates to get started.": "Chưa cấu hình phương thức thanh toán. Nhấp vào \"Thêm phương thức\" hoặc sử dụng mẫu để bắt đầu.",
"No payment methods match your search": "Không có phương thức thanh toán nào khớp với tìm kiếm của bạn",
"No performance data available": "Không có dữ liệu hiệu năng",
"No permission to perform this action": "Không có quyền thực hiện thao tác này",
"No plans available": "Không có gói nào khả dụng",
"No preference": "Không có ưu tiên",
"No prefill groups yet": "Chưa có nhóm điền sẵn nào",
@@ -2974,6 +2983,7 @@
"OpenAIMax": "OpenAIMax",
"OpenRouter": "OpenRouter",
"opens in an external client. Trigger it from the sidebar or API key actions to launch the configured application.": "mở trong một ứng dụng bên ngoài. Kích hoạt nó từ thanh bên hoặc các hành động khóa API để khởi chạy ứng dụng đã cấu hình.",
"Operate channels": "Vận hành kênh",
"Operation": "Thao tác",
"operation and charging behavior": "vận hành và thu phí",
"Operation Audit Info": "Thông tin kiểm toán thao tác",
@@ -3432,6 +3442,7 @@
"Raw Quota": "Hạn mức gốc",
"Re-enable on success": "Kích hoạt lại khi thành công",
"Re-login": "Đăng nhập lại",
"Read channels": "Đọc kênh",
"Ready": "Sẵn sàng",
"Ready to initialize": "Sẵn sàng khởi tạo",
"Ready to simplify": "Sẵn sàng đơn giản hóa",
@@ -3603,6 +3614,7 @@
"Reroll": "Quay lại",
"Research, analysis, scientific reasoning": "Nghiên cứu, phân tích, suy luận khoa học",
"Resend ({{seconds}}s)": "Gửi lại ({{seconds}}s)",
"Reserved for viewing complete channel keys after secure verification.": "Dành riêng để xem khóa kênh đầy đủ sau khi xác minh bảo mật.",
"Reset": "Đặt lại",
"Reset 2FA": "Đặt lại 2FA",
"Reset 2FA for {{username}}? The user must set up 2FA again to continue using it.": "Đặt lại 2FA cho {{username}}? Người dùng phải thiết lập lại 2FA để tiếp tục sử dụng.",
@@ -3739,7 +3751,6 @@
"Save Preferences": "Lưu tùy chọn",
"Save preview": "Xem trước lưu",
"Save rate limits": "Lưu giới hạn tốc độ",
"Save token limits": "Lưu giới hạn token",
"Save sensitive words": "Lưu từ nhạy cảm",
"Save Settings": "Lưu Cài đặt",
"Save sidebar modules": "Lưu các mô-đun thanh bên",
@@ -3748,6 +3759,7 @@
"Save Stripe settings": "Lưu cài đặt Stripe",
"Save these backup codes in a safe place. Each code can only be used once.": "Lưu các mã dự phòng này ở nơi an toàn. Mỗi mã chỉ được sử dụng một lần.",
"Save these codes in a safe place. Each code can only be used once.": "Hãy lưu các mã này ở nơi an toàn. Mỗi mã chỉ có thể được sử dụng một lần.",
"Save token limits": "Lưu giới hạn token",
"Save tool prices": "Lưu giá công cụ",
"Save Waffo Pancake settings": "Lưu cài đặt Waffo Pancake",
"Save Worker settings": "Lưu cài đặt Worker",
@@ -3891,6 +3903,7 @@
"Send email alerts when a user falls below this quota": "Gửi cảnh báo email khi người dùng xuống dưới hạn mức này",
"Send reset email": "Gửi email đặt lại",
"Sending...": "Đang gửi...",
"Sensitive channel settings are read-only for your account.": "Các cài đặt kênh nhạy cảm chỉ đọc đối với tài khoản của bạn.",
"Sensitive Words": "Từ ngữ nhạy cảm",
"Sent the API key to FluentRead.": "Đã gửi khóa API đến FluentRead.",
"Separate image/audio prices are enabled.": "Giá riêng cho hình ảnh/âm thanh đã được bật.",
@@ -3976,11 +3989,11 @@
"Simple mode only returns message; status code and error type use system defaults.": "Chế độ đơn giản chỉ trả về message; mã trạng thái và loại lỗi sử dụng giá trị mặc định.",
"Simple mode: prune objects by type, e.g. redacted_thinking.": "Chế độ đơn giản: dọn dẹp đối tượng theo type, ví dụ redacted_thinking.",
"Single Key": "Khóa đơn",
"Skip async task polling delay": "Bỏ qua độ trễ thăm dò tác vụ bất đồng bộ",
"Site & Branding": "Trang web & thương hiệu",
"Site Key": "Khóa trang web",
"Size:": "Kích thước:",
"sk_xxx or rk_xxx": "sk_xxx hoặc rk_xxx",
"Skip async task polling delay": "Bỏ qua độ trễ thăm dò tác vụ bất đồng bộ",
"Skip retry on failure": "Không thử lại khi thất bại",
"Skip SMTP TLS certificate verification": "Bỏ qua xác minh chứng chỉ TLS SMTP",
"Skip to Main": "Bỏ qua đến nội dung chính",
@@ -4206,6 +4219,7 @@
"Test all {{count}} models": "Kiểm thử tất cả {{count}} mô hình",
"Test All Channels": "Kiểm tra tất cả các kênh",
"Test Channel Connection": "Kiểm tra kết nối kênh",
"Test channels, refresh balances, and enable/disable individual, batch, or tagged channels.": "Kiểm thử kênh, làm mới số dư và bật/tắt từng kênh, hàng loạt hoặc theo thẻ.",
"Test Connection": "Kiểm tra kết nối",
"Test connectivity for:": "Kiểm tra kết nối cho:",
"Test failed": "Kiểm tra thất bại",
@@ -4739,6 +4753,8 @@
"Vidu": "Vidu",
"View": "Xem",
"View all currently available models": "Xem tất cả mô hình hiện có",
"View channel lists and details without secrets.": "Xem danh sách và chi tiết kênh không chứa bí mật.",
"View channel secrets": "Xem bí mật kênh",
"View detailed information about this user including balance, usage statistics, and invitation details.": "Xem thông tin chi tiết về người dùng này bao gồm số dư, thống kê sử dụng và chi tiết lời mời.",
"View details": "Xem chi tiết",
"View document": "Xem tài liệu",
@@ -4881,8 +4897,10 @@
"You can close this tab once the binding completes or a success message appears in the original window.": "Bạn có thể đóng tab này sau khi quá trình liên kết hoàn tất hoặc thông báo thành công xuất hiện trong cửa sổ gốc.",
"You can manually add them in \"Custom Model Names\", click \"Fill\" and then submit, or use the operations below to handle automatically.": "Bạn có thể thêm chúng theo cách thủ công trong \"Tên mô hình tùy chỉnh\", nhấp vào \"Điền\" rồi gửi, hoặc sử dụng các thao tác bên dưới để xử lý tự động.",
"You can only check in once per day": "Bạn chỉ có thể điểm danh một lần mỗi ngày",
"You can still edit non-sensitive operations fields such as models, groups, priority, and weight.": "Bạn vẫn có thể chỉnh sửa các trường vận hành không nhạy cảm như mô hình, nhóm, độ ưu tiên và trọng số.",
"You commit not to use this system to implement, assist with, or indirectly implement acts that violate applicable laws and regulations, regulatory requirements, platform rules, public interests, or the lawful rights and interests of third parties.": "Bạn cam kết không sử dụng hệ thống này để thực hiện, hỗ trợ hoặc gián tiếp thực hiện các hành vi vi phạm luật và quy định hiện hành, yêu cầu quản lý, quy tắc nền tảng, lợi ích công cộng hoặc quyền và lợi ích hợp pháp của bên thứ ba.",
"You commit to using upstream APIs, accounts, keys, quotas, and service capabilities only within the scope of lawful authorization obtained from upstream service providers, model service providers, or relevant rights holders, and will not conduct unauthorized resale, trafficking, distribution, or other non-compliant commercialization.": "Bạn cam kết chỉ sử dụng API upstream, tài khoản, khóa, hạn mức và năng lực dịch vụ trong phạm vi ủy quyền hợp pháp nhận được từ nhà cung cấp dịch vụ upstream, nhà cung cấp mô hình hoặc chủ thể quyền liên quan, và sẽ không thực hiện bán lại, giao dịch, phân phối trái phép hoặc thương mại hóa không tuân thủ khác.",
"You do not have permission to edit sensitive channel settings.": "Bạn không có quyền chỉnh sửa cài đặt kênh nhạy cảm.",
"You don't have necessary permission": "Bạn không có quyền cần thiết",
"You have legally obtained authorization for the connected model APIs, accounts, keys, and quotas.": "Bạn đã nhận được ủy quyền hợp pháp cho API mô hình, tài khoản, khóa và hạn mức được kết nối.",
"You have unsaved changes": "Bạn có thay đổi chưa được lưu",
@@ -4893,6 +4911,8 @@
"You understand this compliance reminder is only for risk notice and does not constitute legal advice, a compliance review conclusion, or a guarantee of the legality of your use of this system; you should consult professional legal or compliance advisors based on your actual business scenario.": "Bạn hiểu rằng nhắc nhở tuân thủ này chỉ là thông báo rủi ro, không cấu thành tư vấn pháp lý, kết luận rà soát tuân thủ hoặc bảo đảm tính hợp pháp của việc sử dụng hệ thống; bạn nên tham khảo cố vấn pháp lý hoặc tuân thủ chuyên nghiệp dựa trên tình huống kinh doanh thực tế.",
"You will be redirected to Telegram to complete the binding process.": "Bạn sẽ được chuyển hướng đến Telegram để hoàn tất quá trình liên kết.",
"You'll be redirected automatically. You can return to the previous page if nothing happens after a few seconds.": "Bạn sẽ được chuyển hướng tự động. Bạn có thể quay lại trang trước nếu không có gì xảy ra sau vài giây.",
"Your account can edit sensitive channel settings.": "Tài khoản của bạn có thể chỉnh sửa cài đặt kênh nhạy cảm.",
"Your account cannot edit sensitive channel settings.": "Tài khoản của bạn không thể chỉnh sửa cài đặt kênh nhạy cảm.",
"your AI integration?": "tích hợp AI của bạn?",
"Your Azure OpenAI endpoint URL": "URL điểm cuối Azure OpenAI của bạn",
"Your Bot Name": "Tên Bot của bạn",