mirror of https://github.com/portainer/portainer
136 lines
3.7 KiB
Go
136 lines
3.7 KiB
Go
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
|
|
}
|