microsoftgraph / microsoftgraph/msgraph-sdk-php

UserType discrepancy between enum value and Graph API response

Offen
#1,736 1 Kommentar 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

service bug
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

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Ö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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.