Skip to content

Commit 287377e

Browse files
committed
use organizationoption for permission tests
1 parent 4d1a264 commit 287377e

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

tests/sentry/replays/test_permissions.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from sentry.models.options.organization_option import OrganizationOption
12
from sentry.models.organizationmemberreplayaccess import OrganizationMemberReplayAccess
23
from sentry.replays.permissions import has_replay_permission
34
from sentry.testutils.cases import TestCase
@@ -16,19 +17,38 @@ def setUp(self) -> None:
1617
self.member2 = self.create_member(organization=self.organization, user=self.user2)
1718
self.member3 = self.create_member(organization=self.organization, user=self.user3)
1819

20+
def _enable_granular_permissions(self) -> None:
21+
"""Enable the organization option for granular replay permissions"""
22+
OrganizationOption.objects.set_value(
23+
organization=self.organization,
24+
key="sentry:granular-replay-permissions",
25+
value=True,
26+
)
27+
1928
def test_feature_flag_disabled_returns_true(self) -> None:
2029
"""When feature flag is disabled, all members should have access"""
30+
self._enable_granular_permissions()
2131
assert has_replay_permission(self.organization, self.user1) is True
2232

33+
def test_org_option_disabled_returns_true(self) -> None:
34+
"""When org option is disabled, all members should have access even with allowlist"""
35+
with self.feature("organizations:granular-replay-permissions"):
36+
OrganizationMemberReplayAccess.objects.create(
37+
organization=self.organization, organizationmember=self.member1
38+
)
39+
assert has_replay_permission(self.organization, self.user2) is True
40+
2341
def test_empty_allowlist_returns_true(self) -> None:
2442
"""When allowlist is empty, all members should have access"""
2543
with self.feature("organizations:granular-replay-permissions"):
44+
self._enable_granular_permissions()
2645
assert has_replay_permission(self.organization, self.user1) is True
2746
assert has_replay_permission(self.organization, self.user2) is True
2847

2948
def test_member_in_allowlist_returns_true(self) -> None:
3049
"""When member is in allowlist, they should have access"""
3150
with self.feature("organizations:granular-replay-permissions"):
51+
self._enable_granular_permissions()
3252
OrganizationMemberReplayAccess.objects.create(
3353
organization=self.organization, organizationmember=self.member1
3454
)
@@ -37,6 +57,7 @@ def test_member_in_allowlist_returns_true(self) -> None:
3757
def test_member_not_in_allowlist_returns_false(self) -> None:
3858
"""When member is not in allowlist and allowlist exists, they should not have access"""
3959
with self.feature("organizations:granular-replay-permissions"):
60+
self._enable_granular_permissions()
4061
OrganizationMemberReplayAccess.objects.create(
4162
organization=self.organization, organizationmember=self.member1
4263
)
@@ -45,6 +66,7 @@ def test_member_not_in_allowlist_returns_false(self) -> None:
4566
def test_multiple_members_in_allowlist(self) -> None:
4667
"""Test multiple members in allowlist"""
4768
with self.feature("organizations:granular-replay-permissions"):
69+
self._enable_granular_permissions()
4870
OrganizationMemberReplayAccess.objects.create(
4971
organization=self.organization, organizationmember=self.member1
5072
)
@@ -60,9 +82,27 @@ def test_non_member_returns_false(self) -> None:
6082
"""Non-members should not have access"""
6183
non_member_user = self.create_user()
6284
with self.feature("organizations:granular-replay-permissions"):
85+
self._enable_granular_permissions()
6386
assert has_replay_permission(self.organization, non_member_user) is False
6487

6588
def test_unauthenticated_user_returns_false(self) -> None:
6689
"""Unauthenticated users should not have access"""
6790
with self.feature("organizations:granular-replay-permissions"):
91+
self._enable_granular_permissions()
6892
assert has_replay_permission(self.organization, None) is False
93+
94+
def test_disabling_org_option_reopens_access(self) -> None:
95+
"""When org option is disabled after being enabled, access is restored"""
96+
with self.feature("organizations:granular-replay-permissions"):
97+
self._enable_granular_permissions()
98+
OrganizationMemberReplayAccess.objects.create(
99+
organization=self.organization, organizationmember=self.member1
100+
)
101+
assert has_replay_permission(self.organization, self.user2) is False
102+
103+
OrganizationOption.objects.set_value(
104+
organization=self.organization,
105+
key="sentry:granular-replay-permissions",
106+
value=False,
107+
)
108+
assert has_replay_permission(self.organization, self.user2) is True

0 commit comments

Comments
 (0)