fix: include role in organisation invite list/retrieve responses#7868
Open
cloorc wants to merge 1 commit into
Open
fix: include role in organisation invite list/retrieve responses#7868cloorc wants to merge 1 commit into
cloorc wants to merge 1 commit into
Conversation
InviteSerializer (used on create) exposes the invite's organisation role,
but InviteListSerializer (used for the list and retrieve actions of
/organisations/{id}/invites/) omits it. As a result an invite created with
role USER is returned with no role at all when listed, so API consumers and
the dashboard fall back to a default (ADMIN), making the pending invite
appear to have a different role than it was created with.
Add role to InviteListSerializer.fields so list/retrieve responses report
the persisted role, and cover it with unit tests.
Signed-off-by: Cloorc <wittcnezh@foxmail.com>
|
@cloorc is attempting to deploy a commit to the Flagsmith Team on Vercel. A member of the Team first needs to authorize it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Thanks for submitting a PR! Please check the boxes below:
docs/if required so people know about the feature.Changes
InviteSerializer(used by thecreateaction of/api/v1/organisations/{id}/invites/) exposes the invite's organisationrole, butInviteListSerializer(used by thelistandretrieveactions) omits it:
As a result, an invite created with role
USERis returned with no rolefield at all when listed or retrieved. API consumers (and the dashboard's
pending-invites UI) then have nothing to display and fall back to a default
of
ADMIN, so a pending invite appears to have a different role than it wascreated with. The role is persisted correctly — only the read path drops it.
This PR adds
roletoInviteListSerializer.fieldssolist/retrieveresponses report the persisted role, consistent with
createand withInviteLinkSerializer(which already exposesrole). The change is purelyadditive and backward compatible.
How did you test this code?
test_list_invites__returns_role_for_each_invite, which creates oneADMINand oneUSERinvite and asserts the list endpoint returns thecorrect role for each.
test_retrieve_invite__valid_invite__returns_200to assert theretrieve response includes
rolematching the invite.Both new assertions fail against
main(the field is absent) and pass withthis change.