mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 13:10:26 +08:00 
			
		
		
		
	优化系统用户登录校验
This commit is contained in:
		@@ -38,7 +38,8 @@ func loadAdminModuleMapping() (map[int64]*AdminModuleList, error) {
 | 
			
		||||
	mapping := map[int64]*AdminModuleList{}
 | 
			
		||||
	for _, m := range modulesResp.AdminModules {
 | 
			
		||||
		list := &AdminModuleList{
 | 
			
		||||
			IsSuper: m.IsSuper,
 | 
			
		||||
			IsSuper:  m.IsSuper,
 | 
			
		||||
			Fullname: m.Fullname,
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		for _, pbModule := range m.Modules {
 | 
			
		||||
@@ -65,6 +66,20 @@ func NotifyAdminModuleMappingChange() error {
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 检查用户是否存在
 | 
			
		||||
func CheckAdmin(adminId int64) bool {
 | 
			
		||||
	locker.Lock()
 | 
			
		||||
	defer locker.Unlock()
 | 
			
		||||
 | 
			
		||||
	// 如果还没有数据,则尝试加载
 | 
			
		||||
	if len(sharedAdminModuleMapping) == 0 {
 | 
			
		||||
		_, _ = loadAdminModuleMapping()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_, ok := sharedAdminModuleMapping[adminId]
 | 
			
		||||
	return ok
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 检查模块是否允许访问
 | 
			
		||||
func AllowModule(adminId int64, module string) bool {
 | 
			
		||||
	locker.Lock()
 | 
			
		||||
@@ -101,6 +116,19 @@ func FindFirstAdminModule(adminId int64) (module AdminModuleCode, ok bool) {
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// 查找某个管理员名称
 | 
			
		||||
func FindAdminFullname(adminId int64) string {
 | 
			
		||||
	locker.Lock()
 | 
			
		||||
	defer locker.Unlock()
 | 
			
		||||
 | 
			
		||||
	list, ok := sharedAdminModuleMapping[adminId]
 | 
			
		||||
	if ok {
 | 
			
		||||
		return list.Fullname
 | 
			
		||||
	}
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 所有权限列表
 | 
			
		||||
func AllModuleMaps() []maps.Map {
 | 
			
		||||
	return []maps.Map{
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user