Skip to content

Commit 0afc9fc

Browse files
ref: fix types for api.invite_helper (#88831)
<!-- Describe your PR here. -->
1 parent a26e3b1 commit 0afc9fc

File tree

6 files changed

+15
-14
lines changed

6 files changed

+15
-14
lines changed

pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,6 @@ module = [
119119
"sentry.api.endpoints.organization_releases",
120120
"sentry.api.endpoints.project_repo_path_parsing",
121121
"sentry.api.endpoints.project_rules_configuration",
122-
"sentry.api.invite_helper",
123122
"sentry.api.paginator",
124123
"sentry.auth.helper",
125124
"sentry.auth.provider",

src/sentry/api/endpoints/accept_organization_invite.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,19 +233,24 @@ def post(
233233

234234
helper = self.get_helper(request, token, invite_context)
235235

236-
if helper.member_already_exists:
236+
if not request.user.is_authenticated:
237+
return Response(
238+
status=status.HTTP_400_BAD_REQUEST,
239+
data={"details": "unable to accept organization invite"},
240+
)
241+
elif helper.member_already_exists:
237242
response = Response(
238243
status=status.HTTP_400_BAD_REQUEST, data={"details": "member already exists"}
239244
)
240-
elif not helper.valid_request:
245+
elif not request.user.is_authenticated or not helper.valid_request:
241246
return Response(
242247
status=status.HTTP_400_BAD_REQUEST,
243248
data={"details": "unable to accept organization invite"},
244249
)
245250
else:
246251
response = Response(status=status.HTTP_204_NO_CONTENT)
247252

248-
helper.accept_invite()
253+
helper.accept_invite(request.user)
249254
remove_invite_details_from_session(request)
250255

251256
return response

src/sentry/api/invite_helper.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,13 +210,10 @@ def valid_request(self) -> bool:
210210
and not any(self.get_onboarding_steps().values())
211211
)
212212

213-
def accept_invite(self, user: User | None = None) -> RpcOrganizationMember | None:
213+
def accept_invite(self, user: User) -> RpcOrganizationMember | None:
214214
member = self.invite_context.member
215215
assert member
216216

217-
if user is None:
218-
user = self.request.user
219-
220217
if self.member_already_exists:
221218
self.handle_member_already_exists()
222219
if self.invite_context.invite_organization_member_id is not None:

src/sentry/users/api/endpoints/user_authenticator_enroll.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ def post(self, request: Request, user: User, interface_id: str) -> HttpResponse:
329329
)
330330
remove_invite_details_from_session(request)
331331
elif invite_helper.valid_request:
332-
invite_helper.accept_invite()
332+
invite_helper.accept_invite(user)
333333
remove_invite_details_from_session(request)
334334

335335
return response

src/sentry/web/frontend/auth_login.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ def accept_invite_and_redirect_to_org(
368368
"""
369369
Accepts an invite on behalf of a user and redirects them to their org login
370370
"""
371-
invite_helper.accept_invite()
371+
invite_helper.accept_invite(request.user)
372372
org_slug = invite_helper.invite_context.organization.slug
373373
self.active_organization = determine_active_organization(
374374
request=request, organization_slug=org_slug
@@ -640,7 +640,7 @@ def handle_basic_auth(self, request: HttpRequest, **kwargs) -> HttpResponseBase:
640640
)
641641

642642
if invite_helper and invite_helper.valid_request:
643-
invite_helper.accept_invite()
643+
invite_helper.accept_invite(user)
644644
organization_slug = invite_helper.invite_context.organization.slug
645645
self.active_organization = determine_active_organization(request, organization_slug)
646646
response = self.redirect_to_org(request)

tests/sentry/api/test_invite_helper.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def _get_om_from_accepting_invite(self) -> OrganizationMember:
4242

4343
helper = ApiInviteHelper(self.request, invite_context, None)
4444
with assume_test_silo_mode(SiloMode.CONTROL):
45-
helper.accept_invite()
45+
helper.accept_invite(self.user)
4646

4747
om.refresh_from_db()
4848
return om
@@ -67,7 +67,7 @@ def test_invite_already_accepted_without_SSO(self):
6767
invite_context.invite_organization_member_id = None
6868
helper = ApiInviteHelper(self.request, invite_context, None)
6969
with assume_test_silo_mode(SiloMode.CONTROL):
70-
helper.accept_invite()
70+
helper.accept_invite(self.user)
7171
om.refresh_from_db()
7272
assert om.email is None
7373
assert om.user_id == self.user.id
@@ -76,7 +76,7 @@ def test_invite_already_accepted_without_SSO(self):
7676
invite_context.invite_organization_member_id = member_id
7777
helper = ApiInviteHelper(self.request, invite_context, None)
7878
with assume_test_silo_mode(SiloMode.CONTROL):
79-
helper.accept_invite()
79+
helper.accept_invite(self.user)
8080
with pytest.raises(OrganizationMember.DoesNotExist):
8181
OrganizationMember.objects.get(id=self.member.id)
8282

0 commit comments

Comments
 (0)