mirror of
https://github.com/beilunyang/moemail.git
synced 2026-09-08 00:36:37 +08:00
feat: Implement OpenAPI with API Key authentication and role-based access control
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
export const ROLES = {
|
||||
EMPEROR: 'emperor',
|
||||
DUKE: 'duke',
|
||||
KNIGHT: 'knight',
|
||||
CIVILIAN: 'civilian',
|
||||
} as const;
|
||||
@@ -11,12 +12,18 @@ export const PERMISSIONS = {
|
||||
MANAGE_WEBHOOK: 'manage_webhook',
|
||||
PROMOTE_USER: 'promote_user',
|
||||
MANAGE_CONFIG: 'manage_config',
|
||||
MANAGE_API_KEY: 'manage_api_key',
|
||||
} as const;
|
||||
|
||||
export type Permission = typeof PERMISSIONS[keyof typeof PERMISSIONS];
|
||||
|
||||
export const ROLE_PERMISSIONS: Record<Role, Permission[]> = {
|
||||
[ROLES.EMPEROR]: Object.values(PERMISSIONS),
|
||||
[ROLES.DUKE]: [
|
||||
PERMISSIONS.MANAGE_EMAIL,
|
||||
PERMISSIONS.MANAGE_WEBHOOK,
|
||||
PERMISSIONS.MANAGE_API_KEY,
|
||||
],
|
||||
[ROLES.KNIGHT]: [
|
||||
PERMISSIONS.MANAGE_EMAIL,
|
||||
PERMISSIONS.MANAGE_WEBHOOK,
|
||||
|
||||
Reference in New Issue
Block a user