fix user query filtering on null userType (#2399)
## Description UserType can be null for users created before 2014. In order to not filter them out with the other guest users, we have to amend our user query to only exclude guests, and retain all other persons. ## Does this PR need a docs update or release note? - [x] ✅ Yes, it's included ## Type of change - [x] 🐛 Bugfix ## Test Plan - [x] 💪 Manual - [x] ⚡ Unit test - [x] 💚 E2E
This commit is contained in:
parent
de3c7e5e83
commit
0ae904e9bc
@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
### Fixed
|
### Fixed
|
||||||
- Backing up a calendar that has the same name as the default calendar
|
- Backing up a calendar that has the same name as the default calendar
|
||||||
- Added additional backoff-retry to all OneDrive queries.
|
- Added additional backoff-retry to all OneDrive queries.
|
||||||
|
- Users with `null` userType values are no longer excluded from user queries.
|
||||||
|
|
||||||
### Known Issues
|
### Known Issues
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,7 @@ package api
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
|
absser "github.com/microsoft/kiota-abstractions-go"
|
||||||
msgraphgocore "github.com/microsoftgraph/msgraph-sdk-go-core"
|
msgraphgocore "github.com/microsoftgraph/msgraph-sdk-go-core"
|
||||||
"github.com/microsoftgraph/msgraph-sdk-go/models"
|
"github.com/microsoftgraph/msgraph-sdk-go/models"
|
||||||
"github.com/microsoftgraph/msgraph-sdk-go/users"
|
"github.com/microsoftgraph/msgraph-sdk-go/users"
|
||||||
@ -58,14 +59,27 @@ const (
|
|||||||
// require more fine-tuned controls in the future.
|
// require more fine-tuned controls in the future.
|
||||||
// https://stackoverflow.com/questions/64044266/error-message-unsupported-or-invalid-query-filter-clause-specified-for-property
|
// https://stackoverflow.com/questions/64044266/error-message-unsupported-or-invalid-query-filter-clause-specified-for-property
|
||||||
//
|
//
|
||||||
|
// ne 'Guest' ensures we don't filter out users where userType = null, which can happen
|
||||||
|
// for user accounts created prior to 2014. In order to use the `ne` comparator, we
|
||||||
|
// MUST include $count=true and the ConsistencyLevel: eventual header.
|
||||||
|
// https://stackoverflow.com/questions/49340485/how-to-filter-users-by-usertype-null
|
||||||
|
//
|
||||||
//nolint:lll
|
//nolint:lll
|
||||||
var userFilterNoGuests = "onPremisesSyncEnabled eq true OR userType eq 'Member'"
|
var userFilterNoGuests = "onPremisesSyncEnabled eq true OR userType ne 'Guest'"
|
||||||
|
|
||||||
|
// I can't believe I have to do this.
|
||||||
|
var t = true
|
||||||
|
|
||||||
func userOptions(fs *string) *users.UsersRequestBuilderGetRequestConfiguration {
|
func userOptions(fs *string) *users.UsersRequestBuilderGetRequestConfiguration {
|
||||||
|
headers := absser.NewRequestHeaders()
|
||||||
|
headers.Add("ConsistencyLevel", "eventual")
|
||||||
|
|
||||||
return &users.UsersRequestBuilderGetRequestConfiguration{
|
return &users.UsersRequestBuilderGetRequestConfiguration{
|
||||||
|
Headers: headers,
|
||||||
QueryParameters: &users.UsersRequestBuilderGetQueryParameters{
|
QueryParameters: &users.UsersRequestBuilderGetQueryParameters{
|
||||||
Select: []string{userSelectID, userSelectPrincipalName, userSelectDisplayName},
|
Select: []string{userSelectID, userSelectPrincipalName, userSelectDisplayName},
|
||||||
Filter: fs,
|
Filter: fs,
|
||||||
|
Count: &t,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user