microsoftgraph / microsoftgraph/msgraph-sdk-php
UserType discrepancy between enum value and Graph API response
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- PHP
- Sterne
- 669
- Forks
- 150
- Ø Merge
- 15 Std. 21 Min.
- Gemergte PRs (30 T.)
- 3
Beschreibung
Describe the bug
The following Microsoft Graph API endpoint:
https://graph.microsoft.com/v1.0/users/{{azureUserId}}?$select=userType
returns
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(userType)/$entity",
"userType": "Member"
}
However, the Microsoft\Graph\Generated\Models\UserType generated enum of the SDK contains
public const MEMBER = "member";
If an integration intends to proactively remove non-member type users from the system using code such as:
if ($azureUser->getUserType() !== UserType::MEMBER) {
$azureUser->delete();
}
this risks removing all Azure users from the system, because an Azure user of user type member would satisfy this condition as well ('member' !== 'Member' is true).
Note: This discrepancy between the API response and the generated SDK has triggered an incident in a production environment of a software product, because the unit tests use the UserType value from the SDK.
Expected behavior
The UserType enum/const should have values capitalized.
Any other enum/consts contained in the SDK should be reviewed for correctness to be in-line with the actual API responses.
How to reproduce
See issue description. There's discrepancy between the API response and the SDK enum/const value.
SDK Version
"microsoft/microsoft-graph": "^2.3",
Latest version known to work for scenario above?
None.
Known Workarounds
Not using UserType, hardcoding sentence-cased value.
Debug output
Click to expand log
```</details>
### Configuration
_No response_
### Other information
_No response_
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie mit dem generierten Microsoft\Graph\Generated\Models\UserType-Enum und vergleichen Sie dessen MEMBER-Wert mit der im Issue gezeigten Antwort des Microsoft Graph user endpoint. Überprüfen Sie die Konstanten der anderen SDK-Enums auf dieselbe Art von Abweichung. Die Aufgabe ist abgeschlossen, wenn UserType mit der API übereinstimmt und alle zusätzlich gefundenen Abweichungen identifiziert und korrigiert sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- php
- Bereich
- api
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 48/100