up
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
package routers
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// InitSysAdminRouter 初始化系统管理员路由
|
||||
func ApiSysAdmin(r *gin.RouterGroup) {
|
||||
// 获取系统管理员列表(仅系统管理员可访问)
|
||||
r.POST("/sysadmins", func(ctx *gin.Context) {
|
||||
isAuth, user, _ := AuthenticationAuthority(ctx)
|
||||
if !isAuth {
|
||||
ReturnJson(ctx, "userNoLogin", nil)
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否为系统管理员
|
||||
if !SysAdminCheck(user.ID) {
|
||||
ReturnJson(ctx, "permission_denied", nil)
|
||||
return
|
||||
}
|
||||
|
||||
var redata map[string]interface{} = make(map[string]interface{})
|
||||
redata["sysAdmins"] = sysAdmins
|
||||
ReturnJson(ctx, "apiOK", redata)
|
||||
})
|
||||
|
||||
// TODO: 其他系统管理员接口可在此添加
|
||||
// 例如:用户管理、用户组管理、登录日志查询等
|
||||
}
|
||||
|
||||
// SysAdminCheck 检查当前用户是否为系统管理员
|
||||
func SysAdminCheck(userID uint) bool {
|
||||
for _, adminID := range sysAdmins {
|
||||
if adminID == userID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// RefreshSysAdmins 刷新系统管理员缓存(可从数据库重新加载)
|
||||
func RefreshSysAdmins() {
|
||||
updateSysAdminsCash()
|
||||
}
|
||||
Reference in New Issue
Block a user