package migrator import ( portainer "github.com/portainer/portainer/api" "github.com/rs/zerolog/log" ) func (m *Migrator) updateUsersToDBVersion18() error { log.Info().Msg("updating users") legacyUsers, err := m.userService.ReadAll() if err != nil { return err } for _, user := range legacyUsers { user.PortainerAuthorizations = map[portainer.Authorization]bool{ portainer.OperationPortainerDockerHubInspect: true, portainer.OperationPortainerEndpointGroupList: true, portainer.OperationPortainerEndpointList: true, portainer.OperationPortainerEndpointInspect: true, portainer.OperationPortainerEndpointExtensionAdd: true, portainer.OperationPortainerEndpointExtensionRemove: true, portainer.OperationPortainerExtensionList: true, portainer.OperationPortainerMOTD: true, portainer.OperationPortainerRegistryList: true, portainer.OperationPortainerRegistryInspect: true, portainer.OperationPortainerTeamList: true, portainer.OperationPortainerTemplateList: true, portainer.OperationPortainerTemplateInspect: true, portainer.OperationPortainerUserList: true, portainer.OperationPortainerUserMemberships: true, } err = m.userService.Update(user.ID, &user) if err != nil { return err } } return nil } func (m *Migrator) updateEndpointsToDBVersion18() error { log.Info().Msg("updating endpoints") legacyEndpoints, err := m.endpointService.Endpoints() if err != nil { return err } for _, endpoint := range legacyEndpoints { endpoint.UserAccessPolicies = make(portainer.UserAccessPolicies) for _, userID := range endpoint.AuthorizedUsers { endpoint.UserAccessPolicies[userID] = portainer.AccessPolicy{ RoleID: 4, } } endpoint.TeamAccessPolicies = make(portainer.TeamAccessPolicies) for _, teamID := range endpoint.AuthorizedTeams { endpoint.TeamAccessPolicies[teamID] = portainer.AccessPolicy{ RoleID: 4, } } err = m.endpointService.UpdateEndpoint(endpoint.ID, &endpoint) if err != nil { return err } } return nil } func (m *Migrator) updateEndpointGroupsToDBVersion18() error { log.Info().Msg("updating endpoint groups") legacyEndpointGroups, err := m.endpointGroupService.ReadAll() if err != nil { return err } for _, endpointGroup := range legacyEndpointGroups { endpointGroup.UserAccessPolicies = make(portainer.UserAccessPolicies) for _, userID := range endpointGroup.AuthorizedUsers { endpointGroup.UserAccessPolicies[userID] = portainer.AccessPolicy{ RoleID: 4, } } endpointGroup.TeamAccessPolicies = make(portainer.TeamAccessPolicies) for _, teamID := range endpointGroup.AuthorizedTeams { endpointGroup.TeamAccessPolicies[teamID] = portainer.AccessPolicy{ RoleID: 4, } } err = m.endpointGroupService.Update(endpointGroup.ID, &endpointGroup) if err != nil { return err } } return nil } func (m *Migrator) updateRegistriesToDBVersion18() error { log.Info().Msg("updating registries") legacyRegistries, err := m.registryService.ReadAll() if err != nil { return err } for _, registry := range legacyRegistries { registry.UserAccessPolicies = make(portainer.UserAccessPolicies) for _, userID := range registry.AuthorizedUsers { registry.UserAccessPolicies[userID] = portainer.AccessPolicy{} } registry.TeamAccessPolicies = make(portainer.TeamAccessPolicies) for _, teamID := range registry.AuthorizedTeams { registry.TeamAccessPolicies[teamID] = portainer.AccessPolicy{} } err = m.registryService.Update(registry.ID, ®istry) if err != nil { return err } } return nil }