优化系统用户登录校验

This commit is contained in:
GoEdgeLab
2020-12-07 11:45:45 +08:00
parent 000b5c79e3
commit 8f1e5e4fc0
11 changed files with 74 additions and 48 deletions

View File

@@ -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{