Reduce number of IDE warnings in permissions_migrations.go (#29605)

* Reduce number of IDE warnings in permissions_migrations.go

* Fix comment language
Этот коммит содержится в:
enzowritescode
2025-01-09 10:33:03 -08:00
коммит произвёл GitHub
родитель 882654d898
Коммит 0c213eae9e

Просмотреть файл

@@ -83,7 +83,7 @@ func isExactRole(roleName string) func(*model.Role, map[string]map[string]bool)
} }
} }
// isRole returns true if roleName matches a role's name field or if the a team // isRole returns true if roleName matches a role's name field or if the team
// or channel scheme role matches a "common name". A common name is one of the following role // or channel scheme role matches a "common name". A common name is one of the following role
// that is common among the system scheme and the team and/or channel schemes: // that is common among the system scheme and the team and/or channel schemes:
// //
@@ -470,7 +470,7 @@ func (a *App) channelModerationPermissionsMigration() (permissionsMap, error) {
model.ChannelGuestRoleId, model.ChannelGuestRoleId,
)...) )...)
// ensure system admin has all of the moderated permissions // ensure system admin has all the moderated permissions
transformations = append(transformations, permissionTransformation{ transformations = append(transformations, permissionTransformation{
On: isExactRole(model.SystemAdminRoleId), On: isExactRole(model.SystemAdminRoleId),
Add: append(moderatedPermissionsMinusCreatePost, PermissionCreatePost), Add: append(moderatedPermissionsMinusCreatePost, PermissionCreatePost),
@@ -499,51 +499,43 @@ func (a *App) getAddUseGroupMentionsPermissionMigration() (permissionsMap, error
} }
func (a *App) getAddSystemConsolePermissionsMigration() (permissionsMap, error) { func (a *App) getAddSystemConsolePermissionsMigration() (permissionsMap, error) {
transformations := []permissionTransformation{}
permissionsToAdd := []string{} permissionsToAdd := []string{}
for _, permission := range append(model.SysconsoleReadPermissions, model.SysconsoleWritePermissions...) { for _, permission := range append(model.SysconsoleReadPermissions, model.SysconsoleWritePermissions...) {
permissionsToAdd = append(permissionsToAdd, permission.Id) permissionsToAdd = append(permissionsToAdd, permission.Id)
} }
return permissionsMap{
// add the new permissions to system admin // add the new permissions to system admin
transformations = append(transformations,
permissionTransformation{ permissionTransformation{
On: isExactRole(model.SystemAdminRoleId), On: isExactRole(model.SystemAdminRoleId),
Add: permissionsToAdd, Add: permissionsToAdd,
}) },
// add read_jobs to all roles with manage_jobs // add read_jobs to all roles with manage_jobs
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(PermissionManageJobs), On: permissionExists(PermissionManageJobs),
Add: []string{PermissionReadJobs}, Add: []string{PermissionReadJobs},
}) },
// add read_other_users_teams to all roles with edit_other_users // add read_other_users_teams to all roles with edit_other_users
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(PermissionEditOtherUsers), On: permissionExists(PermissionEditOtherUsers),
Add: []string{PermissionReadOtherUsersTeams}, Add: []string{PermissionReadOtherUsersTeams},
}) },
// add read_public_channel_groups to all roles with manage_public_channel_members // add read_public_channel_groups to all roles with manage_public_channel_members
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(PermissionManagePublicChannelMembers), On: permissionExists(PermissionManagePublicChannelMembers),
Add: []string{PermissionReadPublicChannelGroups}, Add: []string{PermissionReadPublicChannelGroups},
}) },
// add read_private_channel_groups to all roles with manage_private_channel_members // add read_private_channel_groups to all roles with manage_private_channel_members
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(PermissionManagePrivateChannelMembers), On: permissionExists(PermissionManagePrivateChannelMembers),
Add: []string{PermissionReadPrivateChannelGroups}, Add: []string{PermissionReadPrivateChannelGroups},
}) },
// add edit_brand to all roles with manage_system // add edit_brand to all roles with manage_system
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(PermissionManageSystem), On: permissionExists(PermissionManageSystem),
Add: []string{PermissionEditBrand}, Add: []string{PermissionEditBrand},
}) },
}, nil
return transformations, nil
} }
func (a *App) getAddConvertChannelPermissionsMigration() (permissionsMap, error) { func (a *App) getAddConvertChannelPermissionsMigration() (permissionsMap, error) {
@@ -583,178 +575,141 @@ func (a *App) getBillingPermissionsMigration() (permissionsMap, error) {
} }
func (a *App) getAddManageSecureConnectionsPermissionsMigration() (permissionsMap, error) { func (a *App) getAddManageSecureConnectionsPermissionsMigration() (permissionsMap, error) {
transformations := []permissionTransformation{} return permissionsMap{
// add the new permission to system admin // add the new permission to system admin
transformations = append(transformations,
permissionTransformation{ permissionTransformation{
On: isExactRole(model.SystemAdminRoleId), On: isExactRole(model.SystemAdminRoleId),
Add: []string{PermissionManageSecureConnections}, Add: []string{PermissionManageSecureConnections},
}) },
// remote the deprecated permission from system admin // remote the deprecated permission from system admin
transformations = append(transformations,
permissionTransformation{ permissionTransformation{
On: isExactRole(model.SystemAdminRoleId), On: isExactRole(model.SystemAdminRoleId),
Remove: []string{PermissionManageRemoteClusters}, Remove: []string{PermissionManageRemoteClusters},
}) },
}, nil
return transformations, nil
} }
func (a *App) getAddDownloadComplianceExportResult() (permissionsMap, error) { func (a *App) getAddDownloadComplianceExportResult() (permissionsMap, error) {
transformations := []permissionTransformation{} return permissionsMap{
permissionsToAddComplianceRead := []string{model.PermissionDownloadComplianceExportResult.Id, model.PermissionReadDataRetentionJob.Id}
permissionsToAddComplianceWrite := []string{model.PermissionManageJobs.Id}
// add the new permissions to system admin // add the new permissions to system admin
transformations = append(transformations,
permissionTransformation{ permissionTransformation{
On: isExactRole(model.SystemAdminRoleId), On: isExactRole(model.SystemAdminRoleId),
Add: []string{model.PermissionDownloadComplianceExportResult.Id}, Add: []string{model.PermissionDownloadComplianceExportResult.Id},
}) },
// add Download Compliance Export Result and Read Jobs to all roles with sysconsole_read_compliance // add Download Compliance Export Result and Read Jobs to all roles with sysconsole_read_compliance
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadCompliance.Id), On: permissionExists(model.PermissionSysconsoleReadCompliance.Id),
Add: permissionsToAddComplianceRead, Add: []string{model.PermissionDownloadComplianceExportResult.Id, model.PermissionReadDataRetentionJob.Id},
}) },
// add manage_jobs to all roles with sysconsole_write_compliance // add manage_jobs to all roles with sysconsole_write_compliance
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteCompliance.Id), On: permissionExists(model.PermissionSysconsoleWriteCompliance.Id),
Add: permissionsToAddComplianceWrite, Add: []string{model.PermissionManageJobs.Id},
}) },
}, nil
return transformations, nil
} }
func (a *App) getAddExperimentalSubsectionPermissions() (permissionsMap, error) { func (a *App) getAddExperimentalSubsectionPermissions() (permissionsMap, error) {
transformations := []permissionTransformation{} return permissionsMap{
permissionsExperimentalRead := []string{model.PermissionSysconsoleReadExperimentalBleve.Id, model.PermissionSysconsoleReadExperimentalFeatures.Id, model.PermissionSysconsoleReadExperimentalFeatureFlags.Id}
permissionsExperimentalWrite := []string{model.PermissionSysconsoleWriteExperimentalBleve.Id, model.PermissionSysconsoleWriteExperimentalFeatures.Id, model.PermissionSysconsoleWriteExperimentalFeatureFlags.Id}
// Give the new subsection READ permissions to any user with READ_EXPERIMENTAL // Give the new subsection READ permissions to any user with READ_EXPERIMENTAL
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadExperimental.Id), On: permissionExists(model.PermissionSysconsoleReadExperimental.Id),
Add: permissionsExperimentalRead, Add: []string{model.PermissionSysconsoleReadExperimentalBleve.Id, model.PermissionSysconsoleReadExperimentalFeatures.Id, model.PermissionSysconsoleReadExperimentalFeatureFlags.Id},
}) },
// Give the new subsection WRITE permissions to any user with WRITE_EXPERIMENTAL // Give the new subsection WRITE permissions to any user with WRITE_EXPERIMENTAL
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteExperimental.Id), On: permissionExists(model.PermissionSysconsoleWriteExperimental.Id),
Add: permissionsExperimentalWrite, Add: []string{model.PermissionSysconsoleWriteExperimentalBleve.Id, model.PermissionSysconsoleWriteExperimentalFeatures.Id, model.PermissionSysconsoleWriteExperimentalFeatureFlags.Id},
}) },
// Give the ancillary permissions MANAGE_JOBS and PURGE_BLEVE_INDEXES to anyone with WRITE_EXPERIMENTAL_BLEVE // Give the ancillary permissions MANAGE_JOBS and PURGE_BLEVE_INDEXES to anyone with WRITE_EXPERIMENTAL_BLEVE
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteExperimentalBleve.Id), On: permissionExists(model.PermissionSysconsoleWriteExperimentalBleve.Id),
Add: []string{model.PermissionCreatePostBleveIndexesJob.Id, model.PermissionPurgeBleveIndexes.Id}, Add: []string{model.PermissionCreatePostBleveIndexesJob.Id, model.PermissionPurgeBleveIndexes.Id},
}) },
}, nil
return transformations, nil
} }
func (a *App) getAddIntegrationsSubsectionPermissions() (permissionsMap, error) { func (a *App) getAddIntegrationsSubsectionPermissions() (permissionsMap, error) {
transformations := []permissionTransformation{}
permissionsIntegrationsRead := []string{model.PermissionSysconsoleReadIntegrationsIntegrationManagement.Id, model.PermissionSysconsoleReadIntegrationsBotAccounts.Id, model.PermissionSysconsoleReadIntegrationsGif.Id, model.PermissionSysconsoleReadIntegrationsCors.Id} permissionsIntegrationsRead := []string{model.PermissionSysconsoleReadIntegrationsIntegrationManagement.Id, model.PermissionSysconsoleReadIntegrationsBotAccounts.Id, model.PermissionSysconsoleReadIntegrationsGif.Id, model.PermissionSysconsoleReadIntegrationsCors.Id}
permissionsIntegrationsWrite := []string{model.PermissionSysconsoleWriteIntegrationsIntegrationManagement.Id, model.PermissionSysconsoleWriteIntegrationsBotAccounts.Id, model.PermissionSysconsoleWriteIntegrationsGif.Id, model.PermissionSysconsoleWriteIntegrationsCors.Id} permissionsIntegrationsWrite := []string{model.PermissionSysconsoleWriteIntegrationsIntegrationManagement.Id, model.PermissionSysconsoleWriteIntegrationsBotAccounts.Id, model.PermissionSysconsoleWriteIntegrationsGif.Id, model.PermissionSysconsoleWriteIntegrationsCors.Id}
return permissionsMap{
// Give the new subsection READ permissions to any user with READ_INTEGRATIONS // Give the new subsection READ permissions to any user with READ_INTEGRATIONS
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadIntegrations.Id), On: permissionExists(model.PermissionSysconsoleReadIntegrations.Id),
Add: permissionsIntegrationsRead, Add: permissionsIntegrationsRead,
}) },
// Give the new subsection WRITE permissions to any user with WRITE_EXPERIMENTAL // Give the new subsection WRITE permissions to any user with WRITE_EXPERIMENTAL
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteIntegrations.Id), On: permissionExists(model.PermissionSysconsoleWriteIntegrations.Id),
Add: permissionsIntegrationsWrite, Add: permissionsIntegrationsWrite,
}) },
}, nil
return transformations, nil
} }
func (a *App) getAddSiteSubsectionPermissions() (permissionsMap, error) { func (a *App) getAddSiteSubsectionPermissions() (permissionsMap, error) {
transformations := []permissionTransformation{}
permissionsSiteRead := []string{model.PermissionSysconsoleReadSiteCustomization.Id, model.PermissionSysconsoleReadSiteLocalization.Id, model.PermissionSysconsoleReadSiteUsersAndTeams.Id, model.PermissionSysconsoleReadSiteNotifications.Id, model.PermissionSysconsoleReadSiteAnnouncementBanner.Id, model.PermissionSysconsoleReadSiteEmoji.Id, model.PermissionSysconsoleReadSitePosts.Id, model.PermissionSysconsoleReadSiteFileSharingAndDownloads.Id, model.PermissionSysconsoleReadSitePublicLinks.Id, model.PermissionSysconsoleReadSiteNotices.Id} permissionsSiteRead := []string{model.PermissionSysconsoleReadSiteCustomization.Id, model.PermissionSysconsoleReadSiteLocalization.Id, model.PermissionSysconsoleReadSiteUsersAndTeams.Id, model.PermissionSysconsoleReadSiteNotifications.Id, model.PermissionSysconsoleReadSiteAnnouncementBanner.Id, model.PermissionSysconsoleReadSiteEmoji.Id, model.PermissionSysconsoleReadSitePosts.Id, model.PermissionSysconsoleReadSiteFileSharingAndDownloads.Id, model.PermissionSysconsoleReadSitePublicLinks.Id, model.PermissionSysconsoleReadSiteNotices.Id}
permissionsSiteWrite := []string{model.PermissionSysconsoleWriteSiteCustomization.Id, model.PermissionSysconsoleWriteSiteLocalization.Id, model.PermissionSysconsoleWriteSiteUsersAndTeams.Id, model.PermissionSysconsoleWriteSiteNotifications.Id, model.PermissionSysconsoleWriteSiteAnnouncementBanner.Id, model.PermissionSysconsoleWriteSiteEmoji.Id, model.PermissionSysconsoleWriteSitePosts.Id, model.PermissionSysconsoleWriteSiteFileSharingAndDownloads.Id, model.PermissionSysconsoleWriteSitePublicLinks.Id, model.PermissionSysconsoleWriteSiteNotices.Id} permissionsSiteWrite := []string{model.PermissionSysconsoleWriteSiteCustomization.Id, model.PermissionSysconsoleWriteSiteLocalization.Id, model.PermissionSysconsoleWriteSiteUsersAndTeams.Id, model.PermissionSysconsoleWriteSiteNotifications.Id, model.PermissionSysconsoleWriteSiteAnnouncementBanner.Id, model.PermissionSysconsoleWriteSiteEmoji.Id, model.PermissionSysconsoleWriteSitePosts.Id, model.PermissionSysconsoleWriteSiteFileSharingAndDownloads.Id, model.PermissionSysconsoleWriteSitePublicLinks.Id, model.PermissionSysconsoleWriteSiteNotices.Id}
return permissionsMap{
// Give the new subsection READ permissions to any user with READ_SITE // Give the new subsection READ permissions to any user with READ_SITE
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadSite.Id), On: permissionExists(model.PermissionSysconsoleReadSite.Id),
Add: permissionsSiteRead, Add: permissionsSiteRead,
}) },
// Give the new subsection WRITE permissions to any user with WRITE_SITE // Give the new subsection WRITE permissions to any user with WRITE_SITE
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteSite.Id), On: permissionExists(model.PermissionSysconsoleWriteSite.Id),
Add: permissionsSiteWrite, Add: permissionsSiteWrite,
}) },
// Give the ancillary permissions EDIT_BRAND to anyone with WRITE_SITE_CUSTOMIZATION // Give the ancillary permissions EDIT_BRAND to anyone with WRITE_SITE_CUSTOMIZATION
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteSiteCustomization.Id), On: permissionExists(model.PermissionSysconsoleWriteSiteCustomization.Id),
Add: []string{model.PermissionEditBrand.Id}, Add: []string{model.PermissionEditBrand.Id},
}) },
}, nil
return transformations, nil
} }
func (a *App) getAddComplianceSubsectionPermissions() (permissionsMap, error) { func (a *App) getAddComplianceSubsectionPermissions() (permissionsMap, error) {
transformations := []permissionTransformation{}
permissionsComplianceRead := []string{model.PermissionSysconsoleReadComplianceDataRetentionPolicy.Id, model.PermissionSysconsoleReadComplianceComplianceExport.Id, model.PermissionSysconsoleReadComplianceComplianceMonitoring.Id, model.PermissionSysconsoleReadComplianceCustomTermsOfService.Id} permissionsComplianceRead := []string{model.PermissionSysconsoleReadComplianceDataRetentionPolicy.Id, model.PermissionSysconsoleReadComplianceComplianceExport.Id, model.PermissionSysconsoleReadComplianceComplianceMonitoring.Id, model.PermissionSysconsoleReadComplianceCustomTermsOfService.Id}
permissionsComplianceWrite := []string{model.PermissionSysconsoleWriteComplianceDataRetentionPolicy.Id, model.PermissionSysconsoleWriteComplianceComplianceExport.Id, model.PermissionSysconsoleWriteComplianceComplianceMonitoring.Id, model.PermissionSysconsoleWriteComplianceCustomTermsOfService.Id} permissionsComplianceWrite := []string{model.PermissionSysconsoleWriteComplianceDataRetentionPolicy.Id, model.PermissionSysconsoleWriteComplianceComplianceExport.Id, model.PermissionSysconsoleWriteComplianceComplianceMonitoring.Id, model.PermissionSysconsoleWriteComplianceCustomTermsOfService.Id}
return permissionsMap{
// Give the new subsection READ permissions to any user with READ_COMPLIANCE // Give the new subsection READ permissions to any user with READ_COMPLIANCE
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadCompliance.Id), On: permissionExists(model.PermissionSysconsoleReadCompliance.Id),
Add: permissionsComplianceRead, Add: permissionsComplianceRead,
}) },
// Give the new subsection WRITE permissions to any user with WRITE_COMPLIANCE // Give the new subsection WRITE permissions to any user with WRITE_COMPLIANCE
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteCompliance.Id), On: permissionExists(model.PermissionSysconsoleWriteCompliance.Id),
Add: permissionsComplianceWrite, Add: permissionsComplianceWrite,
}) },
// Ancillary permissions // Ancillary permissions
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteComplianceDataRetentionPolicy.Id), On: permissionExists(model.PermissionSysconsoleWriteComplianceDataRetentionPolicy.Id),
Add: []string{model.PermissionCreateDataRetentionJob.Id}, Add: []string{model.PermissionCreateDataRetentionJob.Id},
}) },
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadComplianceDataRetentionPolicy.Id), On: permissionExists(model.PermissionSysconsoleReadComplianceDataRetentionPolicy.Id),
Add: []string{model.PermissionReadDataRetentionJob.Id}, Add: []string{model.PermissionReadDataRetentionJob.Id},
}) },
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteComplianceComplianceExport.Id), On: permissionExists(model.PermissionSysconsoleWriteComplianceComplianceExport.Id),
Add: []string{model.PermissionCreateComplianceExportJob.Id, model.PermissionDownloadComplianceExportResult.Id}, Add: []string{model.PermissionCreateComplianceExportJob.Id, model.PermissionDownloadComplianceExportResult.Id},
}) },
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadComplianceComplianceExport.Id), On: permissionExists(model.PermissionSysconsoleReadComplianceComplianceExport.Id),
Add: []string{model.PermissionReadComplianceExportJob.Id, model.PermissionDownloadComplianceExportResult.Id}, Add: []string{model.PermissionReadComplianceExportJob.Id, model.PermissionDownloadComplianceExportResult.Id},
}) },
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadComplianceCustomTermsOfService.Id), On: permissionExists(model.PermissionSysconsoleReadComplianceCustomTermsOfService.Id),
Add: []string{model.PermissionReadAudits.Id}, Add: []string{model.PermissionReadAudits.Id},
}) },
}, nil
return transformations, nil
} }
func (a *App) getAddEnvironmentSubsectionPermissions() (permissionsMap, error) { func (a *App) getAddEnvironmentSubsectionPermissions() (permissionsMap, error) {
transformations := []permissionTransformation{}
permissionsEnvironmentRead := []string{ permissionsEnvironmentRead := []string{
model.PermissionSysconsoleReadEnvironmentWebServer.Id, model.PermissionSysconsoleReadEnvironmentWebServer.Id,
model.PermissionSysconsoleReadEnvironmentDatabase.Id, model.PermissionSysconsoleReadEnvironmentDatabase.Id,
@@ -786,95 +741,88 @@ func (a *App) getAddEnvironmentSubsectionPermissions() (permissionsMap, error) {
model.PermissionSysconsoleWriteEnvironmentDeveloper.Id, model.PermissionSysconsoleWriteEnvironmentDeveloper.Id,
} }
// Give the new subsection READ permissions to any user with READ_ENVIRONMENT permissionsElasticsearchRead := []string{
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadEnvironment.Id),
Add: permissionsEnvironmentRead,
})
// Give the new subsection WRITE permissions to any user with WRITE_ENVIRONMENT
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteEnvironment.Id),
Add: permissionsEnvironmentWrite,
})
// Give these ancillary permissions to anyone with READ_ENVIRONMENT_ELASTICSEARCH
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadEnvironmentElasticsearch.Id),
Add: []string{
model.PermissionReadElasticsearchPostIndexingJob.Id, model.PermissionReadElasticsearchPostIndexingJob.Id,
model.PermissionReadElasticsearchPostAggregationJob.Id, model.PermissionReadElasticsearchPostAggregationJob.Id,
}, }
})
// Give these ancillary permissions to anyone with WRITE_ENVIRONMENT_WEB_SERVER permissionsElasticsearchWrite := []string{
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteEnvironmentWebServer.Id),
Add: []string{
model.PermissionTestSiteURL.Id,
model.PermissionReloadConfig.Id,
model.PermissionInvalidateCaches.Id,
},
})
// Give these ancillary permissions to anyone with WRITE_ENVIRONMENT_DATABASE
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteEnvironmentDatabase.Id),
Add: []string{model.PermissionRecycleDatabaseConnections.Id},
})
// Give these ancillary permissions to anyone with WRITE_ENVIRONMENT_ELASTICSEARCH
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteEnvironmentElasticsearch.Id),
Add: []string{
model.PermissionTestElasticsearch.Id, model.PermissionTestElasticsearch.Id,
model.PermissionCreateElasticsearchPostIndexingJob.Id, model.PermissionCreateElasticsearchPostIndexingJob.Id,
model.PermissionCreateElasticsearchPostAggregationJob.Id, model.PermissionCreateElasticsearchPostAggregationJob.Id,
model.PermissionPurgeElasticsearchIndexes.Id, model.PermissionPurgeElasticsearchIndexes.Id,
}, }
})
permissionsWebServerWrite := []string{
model.PermissionTestSiteURL.Id,
model.PermissionReloadConfig.Id,
model.PermissionInvalidateCaches.Id,
}
return permissionsMap{
// Give the new subsection READ permissions to any user with READ_ENVIRONMENT
permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadEnvironment.Id),
Add: permissionsEnvironmentRead,
},
// Give the new subsection WRITE permissions to any user with WRITE_ENVIRONMENT
permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteEnvironment.Id),
Add: permissionsEnvironmentWrite,
},
// Give these ancillary permissions to anyone with READ_ENVIRONMENT_ELASTICSEARCH
permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadEnvironmentElasticsearch.Id),
Add: permissionsElasticsearchRead,
},
// Give these ancillary permissions to anyone with WRITE_ENVIRONMENT_WEB_SERVER
permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteEnvironmentWebServer.Id),
Add: permissionsWebServerWrite,
},
// Give these ancillary permissions to anyone with WRITE_ENVIRONMENT_DATABASE
permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteEnvironmentDatabase.Id),
Add: []string{model.PermissionRecycleDatabaseConnections.Id},
},
// Give these ancillary permissions to anyone with WRITE_ENVIRONMENT_ELASTICSEARCH
permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteEnvironmentElasticsearch.Id),
Add: permissionsElasticsearchWrite,
},
// Give these ancillary permissions to anyone with WRITE_ENVIRONMENT_FILE_STORAGE // Give these ancillary permissions to anyone with WRITE_ENVIRONMENT_FILE_STORAGE
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteEnvironmentFileStorage.Id), On: permissionExists(model.PermissionSysconsoleWriteEnvironmentFileStorage.Id),
Add: []string{model.PermissionTestS3.Id}, Add: []string{model.PermissionTestS3.Id},
}) },
}, nil
return transformations, nil
} }
func (a *App) getAddAboutSubsectionPermissions() (permissionsMap, error) { func (a *App) getAddAboutSubsectionPermissions() (permissionsMap, error) {
transformations := []permissionTransformation{}
permissionsAboutRead := []string{model.PermissionSysconsoleReadAboutEditionAndLicense.Id} permissionsAboutRead := []string{model.PermissionSysconsoleReadAboutEditionAndLicense.Id}
permissionsAboutWrite := []string{model.PermissionSysconsoleWriteAboutEditionAndLicense.Id} permissionsAboutWrite := []string{model.PermissionSysconsoleWriteAboutEditionAndLicense.Id}
transformations = append(transformations, permissionTransformation{ return permissionsMap{
permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadAbout.Id), On: permissionExists(model.PermissionSysconsoleReadAbout.Id),
Add: permissionsAboutRead, Add: permissionsAboutRead,
}) },
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteAbout.Id), On: permissionExists(model.PermissionSysconsoleWriteAbout.Id),
Add: permissionsAboutWrite, Add: permissionsAboutWrite,
}) },
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadAboutEditionAndLicense.Id), On: permissionExists(model.PermissionSysconsoleReadAboutEditionAndLicense.Id),
Add: []string{model.PermissionReadLicenseInformation.Id}, Add: []string{model.PermissionReadLicenseInformation.Id},
}) },
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteAboutEditionAndLicense.Id), On: permissionExists(model.PermissionSysconsoleWriteAboutEditionAndLicense.Id),
Add: []string{model.PermissionManageLicenseInformation.Id}, Add: []string{model.PermissionManageLicenseInformation.Id},
}) },
}, nil
return transformations, nil
} }
func (a *App) getAddReportingSubsectionPermissions() (permissionsMap, error) { func (a *App) getAddReportingSubsectionPermissions() (permissionsMap, error) {
transformations := []permissionTransformation{}
permissionsReportingRead := []string{ permissionsReportingRead := []string{
model.PermissionSysconsoleReadReportingSiteStatistics.Id, model.PermissionSysconsoleReadReportingSiteStatistics.Id,
model.PermissionSysconsoleReadReportingTeamStatistics.Id, model.PermissionSysconsoleReadReportingTeamStatistics.Id,
@@ -886,94 +834,81 @@ func (a *App) getAddReportingSubsectionPermissions() (permissionsMap, error) {
model.PermissionSysconsoleWriteReportingServerLogs.Id, model.PermissionSysconsoleWriteReportingServerLogs.Id,
} }
return permissionsMap{
// Give the new subsection READ permissions to any user with READ_REPORTING // Give the new subsection READ permissions to any user with READ_REPORTING
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadReporting.Id), On: permissionExists(model.PermissionSysconsoleReadReporting.Id),
Add: permissionsReportingRead, Add: permissionsReportingRead,
}) },
// Give the new subsection WRITE permissions to any user with WRITE_REPORTING // Give the new subsection WRITE permissions to any user with WRITE_REPORTING
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteReporting.Id), On: permissionExists(model.PermissionSysconsoleWriteReporting.Id),
Add: permissionsReportingWrite, Add: permissionsReportingWrite,
}) },
// Give the ancillary permissions PERMISSION_GET_ANALYTICS to anyone with PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_USERS or PERMISSION_SYSCONSOLE_READ_REPORTING_SITE_STATISTICS // Give the ancillary permissions PERMISSION_GET_ANALYTICS to anyone with PERMISSION_SYSCONSOLE_READ_USERMANAGEMENT_USERS or PERMISSION_SYSCONSOLE_READ_REPORTING_SITE_STATISTICS
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionOr(permissionExists(model.PermissionSysconsoleReadUserManagementUsers.Id), permissionExists(model.PermissionSysconsoleReadReportingSiteStatistics.Id)), On: permissionOr(permissionExists(model.PermissionSysconsoleReadUserManagementUsers.Id), permissionExists(model.PermissionSysconsoleReadReportingSiteStatistics.Id)),
Add: []string{model.PermissionGetAnalytics.Id}, Add: []string{model.PermissionGetAnalytics.Id},
}) },
// Give the ancillary permissions PERMISSION_GET_LOGS to anyone with PERMISSION_SYSCONSOLE_READ_REPORTING_SERVER_LOGS // Give the ancillary permissions PERMISSION_GET_LOGS to anyone with PERMISSION_SYSCONSOLE_READ_REPORTING_SERVER_LOGS
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadReportingServerLogs.Id), On: permissionExists(model.PermissionSysconsoleReadReportingServerLogs.Id),
Add: []string{model.PermissionGetLogs.Id}, Add: []string{model.PermissionGetLogs.Id},
}) },
}, nil
return transformations, nil
} }
func (a *App) getAddAuthenticationSubsectionPermissions() (permissionsMap, error) { func (a *App) getAddAuthenticationSubsectionPermissions() (permissionsMap, error) {
transformations := []permissionTransformation{}
permissionsAuthenticationRead := []string{model.PermissionSysconsoleReadAuthenticationSignup.Id, model.PermissionSysconsoleReadAuthenticationEmail.Id, model.PermissionSysconsoleReadAuthenticationPassword.Id, model.PermissionSysconsoleReadAuthenticationMfa.Id, model.PermissionSysconsoleReadAuthenticationLdap.Id, model.PermissionSysconsoleReadAuthenticationSaml.Id, model.PermissionSysconsoleReadAuthenticationOpenid.Id, model.PermissionSysconsoleReadAuthenticationGuestAccess.Id} permissionsAuthenticationRead := []string{model.PermissionSysconsoleReadAuthenticationSignup.Id, model.PermissionSysconsoleReadAuthenticationEmail.Id, model.PermissionSysconsoleReadAuthenticationPassword.Id, model.PermissionSysconsoleReadAuthenticationMfa.Id, model.PermissionSysconsoleReadAuthenticationLdap.Id, model.PermissionSysconsoleReadAuthenticationSaml.Id, model.PermissionSysconsoleReadAuthenticationOpenid.Id, model.PermissionSysconsoleReadAuthenticationGuestAccess.Id}
permissionsAuthenticationWrite := []string{model.PermissionSysconsoleWriteAuthenticationSignup.Id, model.PermissionSysconsoleWriteAuthenticationEmail.Id, model.PermissionSysconsoleWriteAuthenticationPassword.Id, model.PermissionSysconsoleWriteAuthenticationMfa.Id, model.PermissionSysconsoleWriteAuthenticationLdap.Id, model.PermissionSysconsoleWriteAuthenticationSaml.Id, model.PermissionSysconsoleWriteAuthenticationOpenid.Id, model.PermissionSysconsoleWriteAuthenticationGuestAccess.Id} permissionsAuthenticationWrite := []string{model.PermissionSysconsoleWriteAuthenticationSignup.Id, model.PermissionSysconsoleWriteAuthenticationEmail.Id, model.PermissionSysconsoleWriteAuthenticationPassword.Id, model.PermissionSysconsoleWriteAuthenticationMfa.Id, model.PermissionSysconsoleWriteAuthenticationLdap.Id, model.PermissionSysconsoleWriteAuthenticationSaml.Id, model.PermissionSysconsoleWriteAuthenticationOpenid.Id, model.PermissionSysconsoleWriteAuthenticationGuestAccess.Id}
return permissionsMap{
// Give the new subsection READ permissions to any user with READ_AUTHENTICATION // Give the new subsection READ permissions to any user with READ_AUTHENTICATION
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadAuthentication.Id), On: permissionExists(model.PermissionSysconsoleReadAuthentication.Id),
Add: permissionsAuthenticationRead, Add: permissionsAuthenticationRead,
}) },
// Give the new subsection WRITE permissions to any user with WRITE_AUTHENTICATION // Give the new subsection WRITE permissions to any user with WRITE_AUTHENTICATION
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteAuthentication.Id), On: permissionExists(model.PermissionSysconsoleWriteAuthentication.Id),
Add: permissionsAuthenticationWrite, Add: permissionsAuthenticationWrite,
}) },
// Give the ancillary permissions for LDAP to anyone with WRITE_AUTHENTICATION_LDAP // Give the ancillary permissions for LDAP to anyone with WRITE_AUTHENTICATION_LDAP
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteAuthenticationLdap.Id), On: permissionExists(model.PermissionSysconsoleWriteAuthenticationLdap.Id),
Add: []string{model.PermissionCreateLdapSyncJob.Id, model.PermissionTestLdap.Id, model.PermissionAddLdapPublicCert.Id, model.PermissionAddLdapPrivateCert.Id, model.PermissionRemoveLdapPublicCert.Id, model.PermissionRemoveLdapPrivateCert.Id}, Add: []string{model.PermissionCreateLdapSyncJob.Id, model.PermissionTestLdap.Id, model.PermissionAddLdapPublicCert.Id, model.PermissionAddLdapPrivateCert.Id, model.PermissionRemoveLdapPublicCert.Id, model.PermissionRemoveLdapPrivateCert.Id},
}) },
// Give the ancillary permissions PERMISSION_TEST_LDAP to anyone with READ_AUTHENTICATION_LDAP // Give the ancillary permissions PERMISSION_TEST_LDAP to anyone with READ_AUTHENTICATION_LDAP
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleReadAuthenticationLdap.Id), On: permissionExists(model.PermissionSysconsoleReadAuthenticationLdap.Id),
Add: []string{model.PermissionReadLdapSyncJob.Id}, Add: []string{model.PermissionReadLdapSyncJob.Id},
}) },
// Give the ancillary permissions PERMISSION_INVALIDATE_EMAIL_INVITE to anyone with WRITE_AUTHENTICATION_EMAIL // Give the ancillary permissions PERMISSION_INVALIDATE_EMAIL_INVITE to anyone with WRITE_AUTHENTICATION_EMAIL
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteAuthenticationEmail.Id), On: permissionExists(model.PermissionSysconsoleWriteAuthenticationEmail.Id),
Add: []string{model.PermissionInvalidateEmailInvite.Id}, Add: []string{model.PermissionInvalidateEmailInvite.Id},
}) },
// Give the ancillary permissions for SAML to anyone with WRITE_AUTHENTICATION_SAML // Give the ancillary permissions for SAML to anyone with WRITE_AUTHENTICATION_SAML
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteAuthenticationSaml.Id), On: permissionExists(model.PermissionSysconsoleWriteAuthenticationSaml.Id),
Add: []string{model.PermissionGetSamlMetadataFromIdp.Id, model.PermissionAddSamlPublicCert.Id, model.PermissionAddSamlPrivateCert.Id, model.PermissionAddSamlIdpCert.Id, model.PermissionRemoveSamlPublicCert.Id, model.PermissionRemoveSamlPrivateCert.Id, model.PermissionRemoveSamlIdpCert.Id, model.PermissionGetSamlCertStatus.Id}, Add: []string{model.PermissionGetSamlMetadataFromIdp.Id, model.PermissionAddSamlPublicCert.Id, model.PermissionAddSamlPrivateCert.Id, model.PermissionAddSamlIdpCert.Id, model.PermissionRemoveSamlPublicCert.Id, model.PermissionRemoveSamlPrivateCert.Id, model.PermissionRemoveSamlIdpCert.Id, model.PermissionGetSamlCertStatus.Id},
}) },
}, nil
return transformations, nil
} }
// This migration fixes https://github.com/mattermost/mattermost-server/issues/17642 where this particular ancillary permission was forgotten during the initial migrations // This migration fixes https://github.com/mattermost/mattermost-server/issues/17642 where this particular ancillary permission was forgotten during the initial migrations
func (a *App) getAddTestEmailAncillaryPermission() (permissionsMap, error) { func (a *App) getAddTestEmailAncillaryPermission() (permissionsMap, error) {
transformations := []permissionTransformation{} return permissionsMap{
// Give these ancillary permissions to anyone with WRITE_ENVIRONMENT_SMTP // Give these ancillary permissions to anyone with WRITE_ENVIRONMENT_SMTP
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteEnvironmentSMTP.Id), On: permissionExists(model.PermissionSysconsoleWriteEnvironmentSMTP.Id),
Add: []string{model.PermissionTestEmail.Id}, Add: []string{model.PermissionTestEmail.Id},
}) },
}, nil
return transformations, nil
} }
func (a *App) getAddCustomUserGroupsPermissions() (permissionsMap, error) { func (a *App) getAddCustomUserGroupsPermissions() (permissionsMap, error) {
t := []permissionTransformation{}
customGroupPermissions := []string{ customGroupPermissions := []string{
model.PermissionCreateCustomGroup.Id, model.PermissionCreateCustomGroup.Id,
model.PermissionManageCustomGroupMembers.Id, model.PermissionManageCustomGroupMembers.Id,
@@ -981,47 +916,42 @@ func (a *App) getAddCustomUserGroupsPermissions() (permissionsMap, error) {
model.PermissionDeleteCustomGroup.Id, model.PermissionDeleteCustomGroup.Id,
} }
t = append(t, permissionTransformation{ return permissionsMap{
permissionTransformation{
On: isExactRole(model.SystemUserRoleId), On: isExactRole(model.SystemUserRoleId),
Add: customGroupPermissions, Add: customGroupPermissions,
}) },
permissionTransformation{
t = append(t, permissionTransformation{
On: isExactRole(model.SystemAdminRoleId), On: isExactRole(model.SystemAdminRoleId),
Add: customGroupPermissions, Add: customGroupPermissions,
}) },
}, nil
return t, nil
} }
func (a *App) getAddCustomUserGroupsPermissionRestore() (permissionsMap, error) { func (a *App) getAddCustomUserGroupsPermissionRestore() (permissionsMap, error) {
t := []permissionTransformation{}
customGroupPermissions := []string{ customGroupPermissions := []string{
model.PermissionRestoreCustomGroup.Id, model.PermissionRestoreCustomGroup.Id,
} }
t = append(t, permissionTransformation{ return permissionsMap{
permissionTransformation{
On: isExactRole(model.SystemUserRoleId), On: isExactRole(model.SystemUserRoleId),
Add: customGroupPermissions, Add: customGroupPermissions,
}) },
permissionTransformation{
t = append(t, permissionTransformation{
On: isExactRole(model.SystemAdminRoleId), On: isExactRole(model.SystemAdminRoleId),
Add: customGroupPermissions, Add: customGroupPermissions,
}) },
permissionTransformation{
t = append(t, permissionTransformation{
On: isExactRole(model.SystemCustomGroupAdminRoleId), On: isExactRole(model.SystemCustomGroupAdminRoleId),
Add: customGroupPermissions, Add: customGroupPermissions,
}) },
return t, nil }, nil
} }
func (a *App) getAddPlaybooksPermissions() (permissionsMap, error) { func (a *App) getAddPlaybooksPermissions() (permissionsMap, error) {
transformations := []permissionTransformation{} return permissionsMap{
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionOr( On: permissionOr(
permissionExists(model.PermissionCreatePublicChannel.Id), permissionExists(model.PermissionCreatePublicChannel.Id),
permissionExists(model.PermissionCreatePrivateChannel.Id), permissionExists(model.PermissionCreatePrivateChannel.Id),
@@ -1030,9 +960,8 @@ func (a *App) getAddPlaybooksPermissions() (permissionsMap, error) {
model.PermissionPublicPlaybookCreate.Id, model.PermissionPublicPlaybookCreate.Id,
model.PermissionPrivatePlaybookCreate.Id, model.PermissionPrivatePlaybookCreate.Id,
}, },
}) },
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: isExactRole(model.SystemAdminRoleId), On: isExactRole(model.SystemAdminRoleId),
Add: []string{ Add: []string{
model.PermissionPublicPlaybookManageProperties.Id, model.PermissionPublicPlaybookManageProperties.Id,
@@ -1048,15 +977,13 @@ func (a *App) getAddPlaybooksPermissions() (permissionsMap, error) {
model.PermissionRunManageMembers.Id, model.PermissionRunManageMembers.Id,
model.PermissionRunView.Id, model.PermissionRunView.Id,
}, },
}) },
}, nil
return transformations, nil
} }
func (a *App) getPlaybooksPermissionsAddManageRoles() (permissionsMap, error) { func (a *App) getPlaybooksPermissionsAddManageRoles() (permissionsMap, error) {
transformations := []permissionTransformation{} return permissionsMap{
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionOr( On: permissionOr(
isExactRole(model.PlaybookAdminRoleId), isExactRole(model.PlaybookAdminRoleId),
isExactRole(model.TeamAdminRoleId), isExactRole(model.TeamAdminRoleId),
@@ -1066,43 +993,32 @@ func (a *App) getPlaybooksPermissionsAddManageRoles() (permissionsMap, error) {
model.PermissionPublicPlaybookManageRoles.Id, model.PermissionPublicPlaybookManageRoles.Id,
model.PermissionPrivatePlaybookManageRoles.Id, model.PermissionPrivatePlaybookManageRoles.Id,
}, },
}) },
}, nil
return transformations, nil
} }
func (a *App) getProductsBoardsPermissions() (permissionsMap, error) { func (a *App) getProductsBoardsPermissions() (permissionsMap, error) {
transformations := []permissionTransformation{} return permissionsMap{
permissionsProductsRead := []string{model.PermissionSysconsoleReadProductsBoards.Id}
permissionsProductsWrite := []string{model.PermissionSysconsoleWriteProductsBoards.Id}
// Give the new subsection READ permissions to any user with SYSTEM_MANAGER // Give the new subsection READ permissions to any user with SYSTEM_MANAGER
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionOr(isExactRole(model.SystemManagerRoleId)), On: permissionOr(isExactRole(model.SystemManagerRoleId)),
Add: permissionsProductsRead, Add: []string{model.PermissionSysconsoleReadProductsBoards.Id},
}) },
// Give the new subsection WRITE permissions to any user with SYSTEM_ADMIN // Give the new subsection WRITE permissions to any user with SYSTEM_ADMIN
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionOr(isExactRole(model.SystemAdminRoleId)), On: permissionOr(isExactRole(model.SystemAdminRoleId)),
Add: permissionsProductsWrite, Add: []string{model.PermissionSysconsoleWriteProductsBoards.Id},
}) },
}, nil
return transformations, nil
} }
func (a *App) getAddChannelReadContentPermissions() (permissionsMap, error) { func (a *App) getAddChannelReadContentPermissions() (permissionsMap, error) {
t := []permissionTransformation{} return permissionsMap{
readChannelContentPermissions := []string{
model.PermissionReadChannelContent.Id,
}
// Migrate all roles including custom roles that have the read_channel permission // Migrate all roles including custom roles that have the read_channel permission
// but exclude system console roles system_read_only_admin system_user_manager & system_manager // but exclude system console roles system_read_only_admin system_user_manager & system_manager
// as this system roles are for the admin console use only // as this system roles are for the admin console use only
t = append(t, permissionTransformation{ permissionTransformation{
On: permissionAnd( On: permissionAnd(
permissionAnd( permissionAnd(
isNotRole(model.SystemUserManagerRoleId), isNotRole(model.SystemUserManagerRoleId),
@@ -1111,55 +1027,45 @@ func (a *App) getAddChannelReadContentPermissions() (permissionsMap, error) {
), ),
permissionExists(model.PermissionReadChannel.Id), permissionExists(model.PermissionReadChannel.Id),
), ),
Add: readChannelContentPermissions, Add: []string{
}) model.PermissionReadChannelContent.Id,
},
return t, nil },
}, nil
} }
func (a *App) getAddIPFilterPermissionsMigration() (permissionsMap, error) { func (a *App) getAddIPFilterPermissionsMigration() (permissionsMap, error) {
t := []permissionTransformation{} return permissionsMap{
permissionTransformation{
ipFilterPermissionsRead := []string{ On: permissionOr(isExactRole(model.SystemAdminRoleId)),
Add: []string{
model.PermissionSysconsoleReadIPFilters.Id, model.PermissionSysconsoleReadIPFilters.Id,
} },
},
ipFilterPermissionsWrite := []string{ permissionTransformation{
On: permissionOr(isExactRole(model.SystemAdminRoleId)),
Add: []string{
model.PermissionSysconsoleWriteIPFilters.Id, model.PermissionSysconsoleWriteIPFilters.Id,
} },
},
t = append(t, permissionTransformation{ }, nil
On: permissionOr(isExactRole(model.SystemAdminRoleId)),
Add: ipFilterPermissionsRead,
})
t = append(t, permissionTransformation{
On: permissionOr(isExactRole(model.SystemAdminRoleId)),
Add: ipFilterPermissionsWrite,
})
return t, nil
} }
func (a *App) getAddOutgoingOAuthConnectionsPermissions() (permissionsMap, error) { func (a *App) getAddOutgoingOAuthConnectionsPermissions() (permissionsMap, error) {
t := []permissionTransformation{} return permissionsMap{
permissionTransformation{
permissionManageOutgoingOAuthConnections := []string{
model.PermissionManageOutgoingOAuthConnections.Id,
}
t = append(t, permissionTransformation{
On: permissionOr(isExactRole(model.SystemAdminRoleId)), On: permissionOr(isExactRole(model.SystemAdminRoleId)),
Add: permissionManageOutgoingOAuthConnections, Add: []string{
}) model.PermissionManageOutgoingOAuthConnections.Id,
},
return t, nil },
}, nil
} }
func (a *App) getAddChannelBookmarksPermissionsMigration() (permissionsMap, error) { func (a *App) getAddChannelBookmarksPermissionsMigration() (permissionsMap, error) {
transformations := []permissionTransformation{} return permissionsMap{
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionOr( On: permissionOr(
isRole(model.ChannelUserRoleId), isRole(model.ChannelUserRoleId),
isRole(model.ChannelAdminRoleId), isRole(model.ChannelAdminRoleId),
@@ -1176,54 +1082,46 @@ func (a *App) getAddChannelBookmarksPermissionsMigration() (permissionsMap, erro
model.PermissionDeleteBookmarkPrivateChannel.Id, model.PermissionDeleteBookmarkPrivateChannel.Id,
model.PermissionOrderBookmarkPrivateChannel.Id, model.PermissionOrderBookmarkPrivateChannel.Id,
}, },
}) },
}, nil
return transformations, nil
} }
func (a *App) getAddManageJobAncillaryPermissionsMigration() (permissionsMap, error) { func (a *App) getAddManageJobAncillaryPermissionsMigration() (permissionsMap, error) {
transformations := []permissionTransformation{} return permissionsMap{
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteAuthenticationLdap.Id), On: permissionExists(model.PermissionSysconsoleWriteAuthenticationLdap.Id),
Add: []string{model.PermissionManageLdapSyncJob.Id}, Add: []string{model.PermissionManageLdapSyncJob.Id},
}) },
transformations = append(transformations, permissionTransformation{ permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteComplianceDataRetentionPolicy.Id), On: permissionExists(model.PermissionSysconsoleWriteComplianceDataRetentionPolicy.Id),
Add: []string{model.PermissionManageDataRetentionJob.Id}, Add: []string{model.PermissionManageDataRetentionJob.Id},
}) },
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteExperimentalBleve.Id), On: permissionExists(model.PermissionSysconsoleWriteExperimentalBleve.Id),
Add: []string{model.PermissionManagePostBleveIndexesJob.Id}, Add: []string{model.PermissionManagePostBleveIndexesJob.Id},
}) },
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteComplianceComplianceExport.Id), On: permissionExists(model.PermissionSysconsoleWriteComplianceComplianceExport.Id),
Add: []string{model.PermissionManageComplianceExportJob.Id}, Add: []string{model.PermissionManageComplianceExportJob.Id},
}) },
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionSysconsoleWriteEnvironmentElasticsearch.Id), On: permissionExists(model.PermissionSysconsoleWriteEnvironmentElasticsearch.Id),
Add: []string{ Add: []string{
model.PermissionManageElasticsearchPostIndexingJob.Id, model.PermissionManageElasticsearchPostIndexingJob.Id,
model.PermissionManageElasticsearchPostAggregationJob.Id, model.PermissionManageElasticsearchPostAggregationJob.Id,
}, },
}) },
}, nil
return transformations, nil
} }
func (a *App) getAddUploadFilePermissionMigration() (permissionsMap, error) { func (a *App) getAddUploadFilePermissionMigration() (permissionsMap, error) {
transformations := []permissionTransformation{} return permissionsMap{
permissionTransformation{
transformations = append(transformations, permissionTransformation{
On: permissionExists(model.PermissionCreatePost.Id), On: permissionExists(model.PermissionCreatePost.Id),
Add: []string{model.PermissionUploadFile.Id}, Add: []string{model.PermissionUploadFile.Id},
}) },
}, nil
return transformations, nil
} }
// DoPermissionsMigrations execute all the permissions migrations need by the current version. // DoPermissionsMigrations execute all the permissions migrations need by the current version.