| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package logic
- import (
- "fmt"
- "github.com/gravitl/netmaker/logic"
- "github.com/gravitl/netmaker/models"
- )
- func MigrateUserRoleAndGroups(user models.User) {
- var err error
- if len(user.RemoteGwIDs) > 0 {
- // define user roles for network
- // assign relevant network role to user
- for remoteGwID := range user.RemoteGwIDs {
- gwNode, err := logic.GetNodeByID(remoteGwID)
- if err != nil {
- continue
- }
- var g models.UserGroup
- if user.PlatformRoleID == models.ServiceUser {
- g, err = GetUserGroup(models.UserGroupID(fmt.Sprintf("%s-%s-grp", gwNode.Network, models.NetworkUser)))
- } else {
- g, err = GetUserGroup(models.UserGroupID(fmt.Sprintf("%s-%s-grp",
- gwNode.Network, models.NetworkAdmin)))
- }
- if err != nil {
- continue
- }
- user.UserGroups[g.ID] = struct{}{}
- }
- }
- if len(user.NetworkRoles) > 0 {
- for netID := range user.NetworkRoles {
- var g models.UserGroup
- if user.PlatformRoleID == models.ServiceUser {
- g, err = GetUserGroup(models.UserGroupID(fmt.Sprintf("%s-%s-grp", netID, models.NetworkUser)))
- } else {
- g, err = GetUserGroup(models.UserGroupID(fmt.Sprintf("%s-%s-grp",
- netID, models.NetworkAdmin)))
- }
- if err != nil {
- continue
- }
- user.UserGroups[g.ID] = struct{}{}
- user.NetworkRoles = make(map[models.NetworkID]map[models.UserRoleID]struct{})
- }
- }
- logic.UpsertUser(user)
- }
|