microsoftgraph / microsoftgraph/msgraph-sdk-python

Regression: CreateLinkPostRequestBody serializes retainInheritedPermissions=false by default starting in 1.59.2

Offen Anfängerfreundlich
#1,563 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

status:waiting-for-triage type:bug
Vorherrschende Sprache
Python
Sterne
630
Forks
96
Ø Merge
15 Std. 20 Min.
Gemergte PRs (30 T.)
3

Beschreibung

Describe the bug

Context

I was using the CreateLinkPostRequestBody to create some link to my driveItems, and it was working properly, but at some point I noticed that some of these files would not be visible to some users anymore (inherited permissions were lost).

The "bug"

Starting with msgraph-sdk-python 1.59.2, CreateLinkPostRequestBody serializes: { "retainInheritedPermissions": false, "sendNotification": false } when these properties are not explicitly set by the caller.

This changes the behavior of the createLink API. According to the Microsoft Graph documentation, retainInheritedPermissions is optional and the service default when omitted is true .

Expected behavior

I believe that the CreateLinkPostRequestBody default attribute values should follow the defaults of the createLink API.

Thus setting retainInheritedPermissions to true (or unset) for the createLink API if not provided in CreateLinkPostRequestBody.

How to reproduce
test.py
from msgraph.generated.drives.item.items.item.create_link.create_link_post_request_body import CreateLinkPostRequestBody

request_body = CreateLinkPostRequestBody(
    type="view",
    scope="organization"
)
from kiota_serialization_json.json_serialization_writer import JsonSerializationWriter
writer = JsonSerializationWriter()


request_body.serialize(writer)
print(writer.get_serialized_content().decode('utf-8'))
Results
version 1.58.0
{
"scope": "organization",
"type": "view"
}

This will let the createLink API default the retainInheritedPermissions to True.

version 1.59.2 and 1.60.0
{
"retainInheritedPermissions": false,
"scope": "organization",
"sendNotification": false,
"type": "view"
}

This will remove existing permissions.

SDK Version

1.59.2

Latest version known to work for scenario above?

1.58.0

Known Workarounds

Explicitly adding the retain_inherited_permissions = True

request_body = CreateLinkPostRequestBody(
    retain_inherited_permissions=True,
    type="view",
    scope="organization"
)
Debug output
Click to expand log ```
</details>


### Configuration

Ubuntu 22.04
x86_64

### 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

Beginne mit dem generierten CreateLinkPostRequestBody-Einstiegspunkt, der im Importpfad gezeigt wird, und reproduziere die Serialisierung anhand des Beispiels test.py. Vergleiche die Ausgabe mit den Versionen 1.58.0 und 1.59.2 und konzentriere dich dabei auf die weggelassenen Werte von retainInheritedPermissions und sendNotification. Erledigt ist die Aufgabe, wenn nicht gesetzte Eigenschaften keine false-Werte mehr serialisieren, sodass die createLink API-Standardwerte angewendet werden können.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
api
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Ruhig
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
75/100

Neue Issues direkt in Ihr Postfach

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