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