From 0f12279099075d5eedee3b9294654bb7156a6b28 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Tue, 5 Sep 2023 17:13:46 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E7=99=BB=E5=BD=95=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/security/account.go | 22 ++++++++++++++++++++++ lib/routes/routes.go | 4 ++++ 2 files changed, 26 insertions(+) diff --git a/features/security/account.go b/features/security/account.go index ac70420c..cc2c9e13 100644 --- a/features/security/account.go +++ b/features/security/account.go @@ -26,6 +26,10 @@ var ( CustomUriOauthToken = config.UriPrefix + "/securityManagement/{apiVersion}/{elementTypeValue}/token" CustomUriOauthHandshake = config.UriPrefix + "/securityManagement/{apiVersion}/{elementTypeValue}/handshake" + // 登录用户信息 + UriUserInfo = config.DefaultUriPrefix + "/securityManagement/{apiVersion}/getUserInfo" + CustomUriUserInfo = config.UriPrefix + "/securityManagement/{apiVersion}/getUserInfo" + // 登录用户路由信息 UriRouters = config.DefaultUriPrefix + "/securityManagement/{apiVersion}/getRouters" CustomUriRouters = config.UriPrefix + "/securityManagement/{apiVersion}/getRouters" @@ -204,6 +208,24 @@ func HandshakeFromOMC(w http.ResponseWriter, r *http.Request) { return } +// 登录用户信息 +func UserInfo(w http.ResponseWriter, r *http.Request) { + loginUser, err := ctx.LoginUser(r) + if err != nil { + ctx.JSON(w, 200, result.OkData(err.Error())) + } + // 角色权限集合,管理员拥有所有权限 + userId := fmt.Sprint(loginUser.UserID) + isAdmin := conf.IsAdmin(userId) + roles, perms := service.NewServiceAccount.RoleAndMenuPerms(userId, isAdmin) + + ctx.JSON(w, 200, result.OkData(map[string]any{ + "user": loginUser.User, + "roles": roles, + "permissions": perms, + })) +} + // 登录用户路由信息 func Routers(w http.ResponseWriter, r *http.Request) { userID := ctx.LoginUserToUserID(r) diff --git a/lib/routes/routes.go b/lib/routes/routes.go index 79307471..c6d40eb2 100644 --- a/lib/routes/routes.go +++ b/lib/routes/routes.go @@ -279,6 +279,10 @@ func init() { Register("POST", lm.ExtBackupDataUri, lm.ExtDatabaseBackupData, nil) Register("POST", lm.CustomExtBackupDataUri, lm.ExtDatabaseBackupData, nil) + // 登录用户信息 + Register("GET", security.UriUserInfo, security.UserInfo, midware.Authorize(nil)) + Register("GET", security.CustomUriUserInfo, security.UserInfo, midware.Authorize(nil)) + // 登录用户路由信息 Register("GET", security.UriRouters, security.Routers, midware.Authorize(nil)) Register("GET", security.CustomUriRouters, security.Routers, midware.Authorize(nil))