105 lines
2.9 KiB
JavaScript
105 lines
2.9 KiB
JavaScript
/**
|
|
* 权限等级定义 · 开发者权限沙箱系统
|
|
*
|
|
* 4 级权限模型:观察者 → 学习者 → 执行者 → 管理者
|
|
* 版权:国作登字-2026-A-00037559
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
// 权限等级定义
|
|
var PERMISSION_LEVELS = {
|
|
0: {
|
|
name: '观察者',
|
|
label: '👀 观察者',
|
|
permissions: [
|
|
'dev:read_self',
|
|
'ticket:read',
|
|
'syslog:read',
|
|
'agent:read',
|
|
'repo:read'
|
|
],
|
|
description: '只读权限,熟悉系统'
|
|
},
|
|
1: {
|
|
name: '学习者',
|
|
label: '📖 学习者',
|
|
permissions: [
|
|
'dev:read_self',
|
|
'ticket:read', 'ticket:create',
|
|
'syslog:read', 'syslog:submit',
|
|
'agent:read',
|
|
'repo:read',
|
|
'deploy:preview'
|
|
],
|
|
description: '预览站可写,正式站只读'
|
|
},
|
|
2: {
|
|
name: '执行者',
|
|
label: '⚡ 执行者',
|
|
permissions: [
|
|
'dev:read_self', 'dev:update_self',
|
|
'ticket:read', 'ticket:create', 'ticket:update',
|
|
'syslog:read', 'syslog:submit',
|
|
'agent:read',
|
|
'repo:read',
|
|
'deploy:preview', 'deploy:production',
|
|
'maintenance:log',
|
|
'approval:decide'
|
|
],
|
|
description: '可操作自己的模块,含正式站部署和授权决策'
|
|
},
|
|
3: {
|
|
name: '管理者',
|
|
label: '👑 管理者',
|
|
permissions: [
|
|
'dev:read_self', 'dev:read_all', 'dev:update_self', 'dev:update_all',
|
|
'ticket:read', 'ticket:create', 'ticket:update', 'ticket:delete',
|
|
'syslog:read', 'syslog:submit',
|
|
'agent:read', 'agent:update',
|
|
'repo:read',
|
|
'deploy:preview', 'deploy:production',
|
|
'broadcast:create',
|
|
'maintenance:log',
|
|
'permission:manage',
|
|
'approval:decide', 'approval:create',
|
|
'system:internal'
|
|
],
|
|
description: '系统管理员,全部权限'
|
|
}
|
|
};
|
|
|
|
// 开发者默认权限配置
|
|
var DEV_PERMISSIONS = {
|
|
'TCS-0002': { level: 3, environment: 'production' },
|
|
'DEV-001': { level: 0, environment: 'preview' },
|
|
'DEV-002': { level: 0, environment: 'preview' },
|
|
'DEV-003': { level: 0, environment: 'preview' },
|
|
'DEV-004': { level: 0, environment: 'preview' },
|
|
'DEV-005': { level: 0, environment: 'preview' },
|
|
'DEV-009': { level: 0, environment: 'preview' },
|
|
'DEV-010': { level: 0, environment: 'preview' },
|
|
'DEV-011': { level: 0, environment: 'preview' },
|
|
'DEV-012': { level: 0, environment: 'preview' }
|
|
};
|
|
|
|
// 开发者 → 模块映射
|
|
var DEV_MODULES = {
|
|
'DEV-001': ['backend/', 'src/'],
|
|
'DEV-002': ['frontend/', 'persona-selector/', 'chat-bubble/'],
|
|
'DEV-003': ['settings/', 'cloud-drive/'],
|
|
'DEV-004': ['dingtalk-bot/'],
|
|
'DEV-005': ['status-board/'],
|
|
'DEV-009': ['user-center/'],
|
|
'DEV-010': ['ticket-system/', 'data-stats/', 'dynamic-comic/'],
|
|
'DEV-011': ['writing-workspace/'],
|
|
'DEV-012': ['notification-center/'],
|
|
'TCS-0002': ['*']
|
|
};
|
|
|
|
module.exports = {
|
|
PERMISSION_LEVELS: PERMISSION_LEVELS,
|
|
DEV_PERMISSIONS: DEV_PERMISSIONS,
|
|
DEV_MODULES: DEV_MODULES
|
|
};
|