Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions src/sentry/api/endpoints/user_permissions_config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from django.conf import settings

from sentry.api.bases.user import UserEndpoint


class UserPermissionsConfigEndpoint(UserEndpoint):
def get(self, request, user):
"""
List all available permissions that can be applied to a user.
"""
return self.respond([p for p in settings.SENTRY_USER_PERMISSIONS])
6 changes: 6 additions & 0 deletions src/sentry/api/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,7 @@
from .endpoints.user_password import UserPasswordEndpoint
from .endpoints.user_permission_details import UserPermissionDetailsEndpoint
from .endpoints.user_permissions import UserPermissionsEndpoint
from .endpoints.user_permissions_config import UserPermissionsConfigEndpoint
from .endpoints.user_social_identities_index import UserSocialIdentitiesIndexEndpoint
from .endpoints.user_social_identity_details import UserSocialIdentityDetailsEndpoint
from .endpoints.user_subscriptions import UserSubscriptionsEndpoint
Expand Down Expand Up @@ -694,6 +695,11 @@
UserPermissionsEndpoint.as_view(),
name="sentry-api-0-user-permissions",
),
url(
r"^(?P<user_id>[^\/]+)/permissions/config/$",
UserPermissionsConfigEndpoint.as_view(),
name="sentry-api-0-user-permissions-config",
),
url(
r"^(?P<user_id>[^\/]+)/permissions/(?P<permission_name>[^\/]+)/$",
UserPermissionDetailsEndpoint.as_view(),
Expand Down
4 changes: 2 additions & 2 deletions tests/sentry/api/endpoints/test_user_permissions.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from sentry.testutils import APITestCase


class UserDetailsTest(APITestCase):
class UserPermissionsConfigTest(APITestCase):
endpoint = "sentry-api-0-user-permissions"

def setUp(self):
Expand All @@ -11,7 +11,7 @@ def setUp(self):
self.login_as(user=self.user)


class UserPermissionsGetTest(UserDetailsTest):
class UserPermissionsGetTest(UserPermissionsConfigTest):
def test_lookup_self(self):
UserPermission.objects.create(user=self.user, permission="broadcasts.admin")
UserPermission.objects.create(user=self.user, permission="users.admin")
Expand Down
19 changes: 19 additions & 0 deletions tests/sentry/api/endpoints/test_user_permissions_config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from sentry.testutils import APITestCase


class UserPermissionsConfigTest(APITestCase):
endpoint = "sentry-api-0-user-permissions-config"

def setUp(self):
super().setUp()
self.user = self.create_user()
self.login_as(user=self.user)


class UserPermissionsConfigGetTest(UserPermissionsConfigTest):
def test_lookup_self(self):
resp = self.get_response("me")
assert resp.status_code == 200
assert len(resp.data) == 2, resp.data
assert "broadcasts.admin" in resp.data
assert "users.admin" in resp.data