feat(mail): 重构邮箱权限体系并细化前台能力控制
- 新增邮箱前台权限与默认普通用户权限迁移,拆分读信、发信、草稿、定时、整理、标签、附件、联系人等能力。 - 收紧后端路由与处理逻辑,按权限限制邮箱前台、个人中心和定时发送相关接口。 - 前端根据权限动态隐藏或禁用邮件、个人中心中的对应功能入口与操作。 - 补充权限迁移与访问控制测试,覆盖普通用户邮箱前台、发信和定时发送的权限校验。
This commit is contained in:
@@ -1,4 +1,18 @@
|
||||
export type PermissionKey =
|
||||
| "mail.access"
|
||||
| "mail.messages.read"
|
||||
| "mail.messages.send"
|
||||
| "mail.messages.drafts"
|
||||
| "mail.messages.schedule"
|
||||
| "mail.messages.organize"
|
||||
| "mail.labels.manage"
|
||||
| "mail.attachments.download"
|
||||
| "mail.contacts.manage"
|
||||
| "mail.signatures.manage"
|
||||
| "mail.rules.manage"
|
||||
| "mail.blocked_senders.manage"
|
||||
| "mail.stats.view"
|
||||
| "mail.mailboxes.apply"
|
||||
| "admin.overview.view"
|
||||
| "admin.users.view"
|
||||
| "admin.users.create"
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
import type { PermissionKey, User } from "@/lib/api-types"
|
||||
|
||||
export const MAIL_PERMISSIONS: PermissionKey[] = [
|
||||
"mail.access",
|
||||
"mail.messages.read",
|
||||
"mail.messages.send",
|
||||
"mail.messages.drafts",
|
||||
"mail.messages.schedule",
|
||||
"mail.messages.organize",
|
||||
"mail.labels.manage",
|
||||
"mail.attachments.download",
|
||||
"mail.contacts.manage",
|
||||
"mail.signatures.manage",
|
||||
"mail.rules.manage",
|
||||
"mail.blocked_senders.manage",
|
||||
"mail.stats.view",
|
||||
"mail.mailboxes.apply",
|
||||
]
|
||||
|
||||
export const ADMIN_PERMISSIONS: PermissionKey[] = [
|
||||
"admin.overview.view",
|
||||
"admin.users.view",
|
||||
@@ -51,3 +68,7 @@ export function hasAnyPermission(user: User | undefined | null, permissions: Per
|
||||
export function hasAdminAccess(user: User | undefined | null) {
|
||||
return hasAnyPermission(user, ADMIN_PERMISSIONS)
|
||||
}
|
||||
|
||||
export function hasMailAccess(user: User | undefined | null) {
|
||||
return hasPermission(user, "mail.access")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user