From 4580c8f6c048678aac963e11730476ee3e7cae7e Mon Sep 17 00:00:00 2001 From: ryanfkeepers Date: Wed, 19 Jul 2023 19:36:37 -0600 Subject: [PATCH] check service enabled on restore Now that restore can target a user who is different from the backup user, the ConsumeRestoreCollections call in m365 also needs to check whether the protectedResource targeted for restore has their services enabled. --- src/internal/m365/backup.go | 2 +- src/internal/m365/restore.go | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/internal/m365/backup.go b/src/internal/m365/backup.go index 50514e4ad..a4e20c61e 100644 --- a/src/internal/m365/backup.go +++ b/src/internal/m365/backup.go @@ -61,7 +61,7 @@ func (ctrl *Controller) ProduceBackupCollections( serviceEnabled, canMakeDeltaQueries, err := checkServiceEnabled( ctx, ctrl.AC.Users(), - path.ServiceType(sels.Service), + sels.PathService(), sels.DiscreteOwner) if err != nil { return nil, nil, false, err diff --git a/src/internal/m365/restore.go b/src/internal/m365/restore.go index f195d28f3..b69aa853f 100644 --- a/src/internal/m365/restore.go +++ b/src/internal/m365/restore.go @@ -39,11 +39,23 @@ func (ctrl *Controller) ConsumeRestoreCollections( return nil, clues.New("no collections to restore") } + serviceEnabled, _, err := checkServiceEnabled( + ctx, + ctrl.AC.Users(), + rcc.Selector.PathService(), + rcc.ProtectedResource.ID()) + if err != nil { + return nil, err + } + + if !serviceEnabled { + return nil, clues.Stack(graph.ErrServiceNotEnabled).WithClues(ctx) + } + var ( service = rcc.Selector.PathService() status *support.ControllerOperationStatus deets = &details.Builder{} - err error ) switch service {