diff --git a/src/cmd/factory/impl/common.go b/src/cmd/factory/impl/common.go index e2dd3c1f7..17dd0b922 100644 --- a/src/cmd/factory/impl/common.go +++ b/src/cmd/factory/impl/common.go @@ -88,8 +88,7 @@ func generateAndRestoreItems( service, tenantID, userID, dest, - collections, - ) + collections) if err != nil { return nil, err } @@ -121,21 +120,18 @@ func getGCAndVerifyUser(ctx context.Context, userID string) (*connector.GraphCon return nil, account.Account{}, clues.Wrap(err, "finding m365 account details") } - // build a graph connector // TODO: log/print recoverable errors errs := fault.New(false) - normUsers := map[string]struct{}{} ins, err := m365.UsersMap(ctx, acct, errs) if err != nil { return nil, account.Account{}, clues.Wrap(err, "getting tenant users") } - for _, k := range ins.IDs() { - normUsers[strings.ToLower(k)] = struct{}{} - } + _, idOK := ins.NameOf(strings.ToLower(userID)) + _, nameOK := ins.IDOf(strings.ToLower(userID)) - if _, ok := normUsers[strings.ToLower(User)]; !ok { + if !idOK && !nameOK { return nil, account.Account{}, clues.New("user not found within tenant") } diff --git a/src/pkg/services/m365/m365.go b/src/pkg/services/m365/m365.go index 3815cdd46..e5dc658a4 100644 --- a/src/pkg/services/m365/m365.go +++ b/src/pkg/services/m365/m365.go @@ -2,6 +2,7 @@ package m365 import ( "context" + "strings" "github.com/alcionai/clues" "github.com/microsoftgraph/msgraph-sdk-go/models" @@ -75,8 +76,9 @@ func UsersMap( ) for _, u := range users { - idToName[u.ID] = u.PrincipalName - nameToID[u.PrincipalName] = u.ID + id, name := strings.ToLower(u.ID), strings.ToLower(u.PrincipalName) + idToName[id] = name + nameToID[name] = id } ins := common.IDsNames{