mirror of
https://github.com/zulip/zulip.git
synced 2025-11-14 10:57:58 +00:00
api: Add an endpoint for listing the user groups in realm.
Adds endpoint for listing the user groups in realm. Provides "description", "members", "name" and "id" for each user group. Fixes #10298
This commit is contained in:
@@ -117,6 +117,14 @@ class UserGroupAPITestCase(ZulipTestCase):
|
|||||||
self.assert_json_error(result, "User group 'support' already exists.")
|
self.assert_json_error(result, "User group 'support' already exists.")
|
||||||
self.assert_length(UserGroup.objects.all(), 2)
|
self.assert_length(UserGroup.objects.all(), 2)
|
||||||
|
|
||||||
|
def test_user_group_get(self) -> None:
|
||||||
|
# Test success
|
||||||
|
user_profile = self.example_user('hamlet')
|
||||||
|
self.login(user_profile.email)
|
||||||
|
result = self.client_get('/json/user_groups')
|
||||||
|
self.assert_json_success(result)
|
||||||
|
self.assert_length(result.json()['user_groups'], UserGroup.objects.filter(realm=user_profile.realm).count())
|
||||||
|
|
||||||
def test_user_group_create_by_guest_user(self) -> None:
|
def test_user_group_create_by_guest_user(self) -> None:
|
||||||
guest_user = self.example_user('polonius')
|
guest_user = self.example_user('polonius')
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ from zerver.lib.response import json_success, json_error
|
|||||||
from zerver.lib.users import user_ids_to_users
|
from zerver.lib.users import user_ids_to_users
|
||||||
from zerver.lib.validator import check_list, check_string, check_int, \
|
from zerver.lib.validator import check_list, check_string, check_int, \
|
||||||
check_short_string
|
check_short_string
|
||||||
from zerver.lib.user_groups import access_user_group_by_id, get_memberships_of_users, get_user_group_members
|
from zerver.lib.user_groups import access_user_group_by_id, get_memberships_of_users, \
|
||||||
|
get_user_group_members, user_groups_in_realm_serialized
|
||||||
from zerver.models import UserProfile, UserGroup, UserGroupMembership
|
from zerver.models import UserProfile, UserGroup, UserGroupMembership
|
||||||
from zerver.views.streams import compose_views, FuncKwargPair
|
from zerver.views.streams import compose_views, FuncKwargPair
|
||||||
|
|
||||||
@@ -28,6 +29,12 @@ def add_user_group(request: HttpRequest, user_profile: UserProfile,
|
|||||||
check_add_user_group(user_profile.realm, name, user_profiles, description)
|
check_add_user_group(user_profile.realm, name, user_profiles, description)
|
||||||
return json_success()
|
return json_success()
|
||||||
|
|
||||||
|
@require_non_guest_human_user
|
||||||
|
@has_request_variables
|
||||||
|
def get_user_group(request: HttpRequest, user_profile: UserProfile) -> HttpResponse:
|
||||||
|
user_groups = user_groups_in_realm_serialized(user_profile.realm)
|
||||||
|
return json_success({"user_groups": user_groups})
|
||||||
|
|
||||||
@require_non_guest_human_user
|
@require_non_guest_human_user
|
||||||
@has_request_variables
|
@has_request_variables
|
||||||
def edit_user_group(request: HttpRequest, user_profile: UserProfile,
|
def edit_user_group(request: HttpRequest, user_profile: UserProfile,
|
||||||
|
|||||||
@@ -251,6 +251,8 @@ v1_api_and_json_patterns = [
|
|||||||
'DELETE': 'zerver.views.push_notifications.remove_android_reg_id'}),
|
'DELETE': 'zerver.views.push_notifications.remove_android_reg_id'}),
|
||||||
|
|
||||||
# user_groups -> zerver.views.user_groups
|
# user_groups -> zerver.views.user_groups
|
||||||
|
url(r'^user_groups$', rest_dispatch,
|
||||||
|
{'GET': 'zerver.views.user_groups.get_user_group'}),
|
||||||
url(r'^user_groups/create$', rest_dispatch,
|
url(r'^user_groups/create$', rest_dispatch,
|
||||||
{'POST': 'zerver.views.user_groups.add_user_group'}),
|
{'POST': 'zerver.views.user_groups.add_user_group'}),
|
||||||
url(r'^user_groups/(?P<user_group_id>\d+)$', rest_dispatch,
|
url(r'^user_groups/(?P<user_group_id>\d+)$', rest_dispatch,
|
||||||
|
|||||||
Reference in New Issue
Block a user