diff --git a/pkg/services/sqlstore/migrations/accesscontrol/alerting.go b/pkg/services/sqlstore/migrations/accesscontrol/alerting.go index ad7a920d7b4..15a92ba777a 100644 --- a/pkg/services/sqlstore/migrations/accesscontrol/alerting.go +++ b/pkg/services/sqlstore/migrations/accesscontrol/alerting.go @@ -85,3 +85,34 @@ func (m *alertingMigrator) migrateNotificationActions() error { return nil } + +type receiverCreateScopeMigration struct { + migrator.MigrationBase +} + +var _ migrator.CodeMigration = new(alertingMigrator) + +func (m *receiverCreateScopeMigration) SQL(migrator.Dialect) string { + return "code migration" +} + +func (m *receiverCreateScopeMigration) Exec(sess *xorm.Session, mg *migrator.Migrator) error { + result, err := sess.Exec(`UPDATE permission + SET scope = '', + kind = '', + attribute='', + identifier='' + WHERE action = 'alert.notifications.receivers:create' + AND (scope <> '' OR kind <> '' OR attribute <> '' OR identifier <> '');`) + if result != nil { + aff, _ := result.RowsAffected() + if aff > 0 { + mg.Logger.Info("Removed scope from permission 'alert.notifications.receivers:create'", "affectedRows", aff) + } + } + return err +} + +func AddReceiverCreateScopeMigration(mg *migrator.Migrator) { + mg.AddMigration("remove scope from alert.notifications.receivers:create", &receiverCreateScopeMigration{}) +} diff --git a/pkg/services/sqlstore/migrations/migrations.go b/pkg/services/sqlstore/migrations/migrations.go index aba1ff6e43e..5ff48e9849a 100644 --- a/pkg/services/sqlstore/migrations/migrations.go +++ b/pkg/services/sqlstore/migrations/migrations.go @@ -138,6 +138,8 @@ func (oss *OSSMigrations) AddMigration(mg *Migrator) { accesscontrol.AddActionSetPermissionsMigrator(mg) externalsession.AddMigration(mg) + + accesscontrol.AddReceiverCreateScopeMigration(mg) } func addStarMigrations(mg *Migrator) {