@@ -42,9 +42,25 @@ func (rc *ResourceController) GetResources(c *gin.Context) {
4242 // 管理员直接返回所有菜单和权限
4343 if isAdmin {
4444 allPermissions := rc .collectAllPermissions (menuTree )
45+
46+ // Resolve role names for admin (same format as non-admin path)
47+ adminUser , err := rc .UserRepository .GetByID (c , userID )
48+ if err != nil {
49+ pkg .Log .WithField ("userID" , userID ).WithError (err ).Error ("Failed to get admin user information" )
50+ c .JSON (http .StatusInternalServerError , domain .RespError ("Failed to get user: " + err .Error ()))
51+ return
52+ }
53+ adminRoleObjects , _ := rc .getUserRoles (c , adminUser .Roles )
54+ adminRoleNames := make ([]string , 0 , len (adminRoleObjects ))
55+ for _ , r := range adminRoleObjects {
56+ adminRoleNames = append (adminRoleNames , r .Name )
57+ }
58+
4559 responseData := gin.H {
4660 "menus" : menuTree ,
4761 "permissions" : allPermissions ,
62+ "roles" : adminRoleNames ,
63+ "is_admin" : true ,
4864 }
4965 c .JSON (http .StatusOK , domain .RespSuccess (responseData ))
5066 return
@@ -71,10 +87,18 @@ func (rc *ResourceController) GetResources(c *gin.Context) {
7187 // 过滤菜单树
7288 filteredMenuTree := rc .filterMenuTree (menuTree , userMenuIDs )
7389
90+ // 提取角色名称列表
91+ roleNames := make ([]string , 0 , len (roles ))
92+ for _ , r := range roles {
93+ roleNames = append (roleNames , r .Name )
94+ }
95+
7496 // 构建响应数据
7597 responseData := gin.H {
7698 "menus" : filteredMenuTree ,
7799 "permissions" : userPermissions ,
100+ "roles" : roleNames ,
101+ "is_admin" : false ,
78102 }
79103 c .JSON (http .StatusOK , domain .RespSuccess (responseData ))
80104}
0 commit comments