mirror of https://github.com/portainer/portainer
53 lines
1.7 KiB
Go
53 lines
1.7 KiB
Go
package migrator
|
|
|
|
import (
|
|
portainer "github.com/portainer/portainer/api"
|
|
)
|
|
|
|
func (m *Migrator) updateEndpointSettingsToDB25() error {
|
|
migrateLog.Info("Updating endpoint settings")
|
|
settings, err := m.settingsService.Settings()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
endpoints, err := m.endpointService.Endpoints()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for i := range endpoints {
|
|
endpoint := endpoints[i]
|
|
|
|
securitySettings := portainer.EndpointSecuritySettings{}
|
|
|
|
if endpoint.Type == portainer.EdgeAgentOnDockerEnvironment ||
|
|
endpoint.Type == portainer.AgentOnDockerEnvironment ||
|
|
endpoint.Type == portainer.DockerEnvironment {
|
|
|
|
securitySettings = portainer.EndpointSecuritySettings{
|
|
AllowBindMountsForRegularUsers: settings.AllowBindMountsForRegularUsers,
|
|
AllowContainerCapabilitiesForRegularUsers: settings.AllowContainerCapabilitiesForRegularUsers,
|
|
AllowDeviceMappingForRegularUsers: settings.AllowDeviceMappingForRegularUsers,
|
|
AllowHostNamespaceForRegularUsers: settings.AllowHostNamespaceForRegularUsers,
|
|
AllowPrivilegedModeForRegularUsers: settings.AllowPrivilegedModeForRegularUsers,
|
|
AllowStackManagementForRegularUsers: settings.AllowStackManagementForRegularUsers,
|
|
}
|
|
|
|
if endpoint.Type == portainer.AgentOnDockerEnvironment || endpoint.Type == portainer.EdgeAgentOnDockerEnvironment {
|
|
securitySettings.AllowVolumeBrowserForRegularUsers = settings.AllowVolumeBrowserForRegularUsers
|
|
securitySettings.EnableHostManagementFeatures = settings.EnableHostManagementFeatures
|
|
}
|
|
}
|
|
|
|
endpoint.SecuritySettings = securitySettings
|
|
|
|
err = m.endpointService.UpdateEndpoint(endpoint.ID, &endpoint)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|