Skip to content

Commit cea1e5a

Browse files
committed
validate token first
1 parent f77e5e9 commit cea1e5a

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/sentry/web/frontend/accept_organization_invite_redirect.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from django.urls import reverse
55

66
from sentry.api.endpoints.accept_organization_invite import get_invite_state
7+
from sentry.api.invite_helper import ApiInviteHelper
78
from sentry.demo_mode.utils import is_demo_user
89
from sentry.utils.http import query_string
910
from sentry.web.frontend.react_page import GenericReactPageView
@@ -28,6 +29,10 @@ def handle(self, request: HttpRequest, member_id: int, token: str, **kwargs) ->
2829
if invite_context is None:
2930
return self.handle_react(request, **kwargs)
3031

32+
helper = ApiInviteHelper(request=request, token=token, invite_context=invite_context)
33+
if not helper.valid_token:
34+
return self.handle_react(request, **kwargs)
35+
3136
redirect_url = reverse(
3237
"sentry-organization-accept-invite",
3338
kwargs={

tests/sentry/web/frontend/test_accept_organization_invite_redirect.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,17 @@ def test_redirects_legacy_invite_to_org_scoped_route(self) -> None:
2727
+ "?referrer=email"
2828
)
2929

30+
def test_invalid_token_does_not_leak_org_slug(self) -> None:
31+
organization = self.create_organization()
32+
member = self.create_member(organization=organization, email="newuser@example.com")
33+
34+
response = self.client.get(
35+
reverse("sentry-accept-invite", args=[member.id, "invalidtoken"])
36+
)
37+
38+
assert response.status_code == 200
39+
self.assertTemplateUsed(response, "sentry/base-react.html")
40+
3041
def test_unresolved_legacy_invite_falls_back_to_react_page(self) -> None:
3142
response = self.client.get(reverse("sentry-accept-invite", args=[123456, "invalidtoken"]))
3243

0 commit comments

Comments
 (0)