[MM-28000] Fix system manager can download export files without right permissions (#16569)
Automatic Merge
Этот коммит содержится в:
@@ -534,6 +534,34 @@ func (a *App) getAddManageRemoteClustersPermissionsMigration() (permissionsMap,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (a *App) getAddDownloadComplianceExportResult() (permissionsMap, error) {
|
||||
transformations := []permissionTransformation{}
|
||||
|
||||
permissionsToAddComplianceRead := []string{model.PERMISSION_DOWNLOAD_COMPLIANCE_EXPORT_RESULT.Id, model.PERMISSION_READ_JOBS.Id}
|
||||
permissionsToAddComplianceWrite := []string{model.PERMISSION_MANAGE_JOBS.Id}
|
||||
|
||||
// add the new permissions to system admin
|
||||
transformations = append(transformations,
|
||||
permissionTransformation{
|
||||
On: isRole(model.SYSTEM_ADMIN_ROLE_ID),
|
||||
Add: []string{model.PERMISSION_DOWNLOAD_COMPLIANCE_EXPORT_RESULT.Id},
|
||||
})
|
||||
|
||||
// add Download Compliance Export Result and Read Jobs to all roles with sysconsole_read_compliance
|
||||
transformations = append(transformations, permissionTransformation{
|
||||
On: permissionExists(model.PERMISSION_SYSCONSOLE_READ_COMPLIANCE.Id),
|
||||
Add: permissionsToAddComplianceRead,
|
||||
})
|
||||
|
||||
// add manage_jobs to all roles with sysconsole_write_compliance
|
||||
transformations = append(transformations, permissionTransformation{
|
||||
On: permissionExists(model.PERMISSION_SYSCONSOLE_WRITE_COMPLIANCE.Id),
|
||||
Add: permissionsToAddComplianceWrite,
|
||||
})
|
||||
|
||||
return transformations, nil
|
||||
}
|
||||
|
||||
// DoPermissionsMigrations execute all the permissions migrations need by the current version.
|
||||
func (a *App) DoPermissionsMigrations() error {
|
||||
PermissionsMigrations := []struct {
|
||||
@@ -557,6 +585,7 @@ func (a *App) DoPermissionsMigrations() error {
|
||||
{Key: model.MIGRATION_KEY_ADD_MANAGE_REMOTE_CLUSTERS_PERMISSIONS, Migration: a.getAddManageRemoteClustersPermissionsMigration},
|
||||
{Key: model.MIGRATION_KEY_ADD_SYSTEM_ROLES_PERMISSIONS, Migration: a.getSystemRolesPermissionsMigration},
|
||||
{Key: model.MIGRATION_KEY_ADD_BILLING_PERMISSIONS, Migration: a.getBillingPermissionsMigration},
|
||||
{Key: model.MIGRATION_KEY_ADD_DOWNLOAD_COMPLIANCE_EXPORT_RESULTS, Migration: a.getAddDownloadComplianceExportResult},
|
||||
}
|
||||
|
||||
roles, err := a.GetAllRoles()
|
||||
|
||||
Ссылка в новой задаче
Block a user