preserver platfrom user admin role (#3187)

This commit is contained in:
Abhishek K 2024-11-08 13:38:17 +04:00 committed by GitHub
parent 4a92c908ad
commit b796331f3c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 20 additions and 5 deletions

View file

@ -9,6 +9,9 @@ import (
func MigrateUserRoleAndGroups(user models.User) {
var err error
if user.PlatformRoleID == models.AdminRole || user.PlatformRoleID == models.SuperAdminRole {
return
}
if len(user.RemoteGwIDs) > 0 {
// define user roles for network
// assign relevant network role to user
@ -31,13 +34,27 @@ func MigrateUserRoleAndGroups(user models.User) {
}
}
if len(user.NetworkRoles) > 0 {
for netID := range user.NetworkRoles {
for netID, netRoles := range user.NetworkRoles {
var g models.UserGroup
adminAccess := false
for netRoleID := range netRoles {
permTemplate, err := logic.GetRole(netRoleID)
if err == nil {
if permTemplate.FullAccess {
adminAccess = true
}
}
}
if user.PlatformRoleID == models.ServiceUser {
g, err = GetUserGroup(models.UserGroupID(fmt.Sprintf("%s-%s-grp", netID, models.NetworkUser)))
} else {
role := models.NetworkUser
if adminAccess {
role = models.NetworkAdmin
}
g, err = GetUserGroup(models.UserGroupID(fmt.Sprintf("%s-%s-grp",
netID, models.NetworkAdmin)))
netID, role)))
}
if err != nil {
continue

View file

@ -1229,9 +1229,7 @@ func AddGlobalNetRolesToAdmins(u models.User) {
if u.PlatformRoleID != models.SuperAdminRole && u.PlatformRoleID != models.AdminRole {
return
}
if u.UserGroups == nil {
u.UserGroups = make(map[models.UserGroupID]struct{})
}
u.UserGroups = make(map[models.UserGroupID]struct{})
u.UserGroups[models.UserGroupID(fmt.Sprintf("global-%s-grp", models.NetworkAdmin))] = struct{}{}
logic.UpsertUser(u)
}