mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 13:10:26 +08:00 
			
		
		
		
	
		
			
	
	
		
			73 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			73 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package configloaders
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import "github.com/iwind/TeaGo/maps"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								type AdminModuleCode = string
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const (
							 | 
						||
| 
								 | 
							
									AdminModuleCodeServer  AdminModuleCode = "server"
							 | 
						||
| 
								 | 
							
									AdminModuleCodeNode    AdminModuleCode = "node"
							 | 
						||
| 
								 | 
							
									AdminModuleCodeDNS     AdminModuleCode = "dns"
							 | 
						||
| 
								 | 
							
									AdminModuleCodeAdmin   AdminModuleCode = "admin"
							 | 
						||
| 
								 | 
							
									AdminModuleCodeLog     AdminModuleCode = "log"
							 | 
						||
| 
								 | 
							
									AdminModuleCodeSetting AdminModuleCode = "setting"
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var adminModuleMapping = map[int64]*AdminModuleList{} // adminId => AdminModuleList
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func LoadAdminModuleMapping() (map[int64]*AdminModuleList, error) {
							 | 
						||
| 
								 | 
							
									locker.Lock()
							 | 
						||
| 
								 | 
							
									defer locker.Unlock()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									if len(adminModuleMapping) > 0 {
							 | 
						||
| 
								 | 
							
										return adminModuleMapping, nil
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									// TODO
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									return nil, nil
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func NotifyAdminModuleMappingChange() error {
							 | 
						||
| 
								 | 
							
									locker.Lock()
							 | 
						||
| 
								 | 
							
									adminModuleMapping = map[int64]*AdminModuleList{}
							 | 
						||
| 
								 | 
							
									locker.Unlock() // 这里结束是为了避免和LoadAdminModuleMapping()造成死锁
							 | 
						||
| 
								 | 
							
									_, err := LoadAdminModuleMapping()
							 | 
						||
| 
								 | 
							
									return err
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func IsAllowModule(adminId int64, module string) bool {
							 | 
						||
| 
								 | 
							
									// TODO
							 | 
						||
| 
								 | 
							
									return false
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// 所有权限列表
							 | 
						||
| 
								 | 
							
								func AllModuleMaps() []maps.Map {
							 | 
						||
| 
								 | 
							
									return []maps.Map{
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											"name": "网站服务",
							 | 
						||
| 
								 | 
							
											"code": AdminModuleCodeServer,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											"name": "边缘节点",
							 | 
						||
| 
								 | 
							
											"code": AdminModuleCodeNode,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											"name": "域名解析",
							 | 
						||
| 
								 | 
							
											"code": AdminModuleCodeDNS,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											"name": "系统用户",
							 | 
						||
| 
								 | 
							
											"code": AdminModuleCodeAdmin,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											"name": "日志审计",
							 | 
						||
| 
								 | 
							
											"code": AdminModuleCodeLog,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											"name": "系统设置",
							 | 
						||
| 
								 | 
							
											"code": AdminModuleCodeSetting,
							 | 
						||
| 
								 | 
							
										},
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |