Eliminate legacy json/make_stream_public and json/make_stream_private URL

Migrate from POST to PATCH
This commit is contained in:
anirudhjain75
2016-12-23 13:45:30 +05:30
committed by showell
parent 39dde79ab8
commit 8acdbef8aa
4 changed files with 22 additions and 31 deletions

View File

@@ -1270,17 +1270,17 @@ $(function () {
stream_list.redraw_stream_privacy(sub.name);
}
function change_stream_privacy(e, url, success_message, error_message, invite_only) {
function change_stream_privacy(e, is_private, success_message, error_message, invite_only) {
e.preventDefault();
var stream_id = $(e.target).closest(".subscription_settings").attr("data-stream-id");
var sub = stream_data.get_sub_by_id(stream_id);
$("#subscriptions-status").hide();
var data = {stream_name: sub.name};
var data = {stream_name: sub.name, is_private: is_private};
channel.post({
url: url,
channel.patch({
url: "/json/streams/" + sub.name,
data: data,
success: function () {
sub = stream_data.get_sub_by_id(stream_id);
@@ -1302,7 +1302,7 @@ $(function () {
$("#subscriptions_table").on("click", ".make-stream-public-button", function (e) {
change_stream_privacy(
e,
"/json/make_stream_public",
false,
"The stream has been made public!",
"Error making stream public",
false
@@ -1312,7 +1312,7 @@ $(function () {
$("#subscriptions_table").on("click", ".make-stream-private-button", function (e) {
change_stream_privacy(
e,
"/json/make_stream_private",
true,
"The stream has been made private!",
"Error making stream private",
true

View File

@@ -117,18 +117,20 @@ class StreamAdminTest(ZulipTestCase):
do_change_is_admin(user_profile, True)
params = {
'stream_name': 'private_stream'
'stream_name': ujson.dumps('private_stream'),
'is_private': ujson.dumps(False)
}
result = self.client_post("/json/make_stream_public", params)
result = self.client_patch("/json/streams/private_stream", params)
self.assert_json_error(result, 'You are not invited to this stream.')
self.subscribe_to_stream(email, 'private_stream')
do_change_is_admin(user_profile, True)
params = {
'stream_name': 'private_stream'
'stream_name': ujson.dumps('private_stream'),
'is_private': ujson.dumps(False)
}
result = self.client_post("/json/make_stream_public", params)
result = self.client_patch("/json/streams/private_stream", params)
self.assert_json_success(result)
realm = user_profile.realm
@@ -145,9 +147,10 @@ class StreamAdminTest(ZulipTestCase):
do_change_is_admin(user_profile, True)
params = {
'stream_name': 'public_stream'
'stream_name': ujson.dumps('public_stream'),
'is_private': ujson.dumps(True)
}
result = self.client_post("/json/make_stream_private", params)
result = self.client_patch("/json/streams/public_stream", params)
self.assert_json_success(result)
stream = Stream.objects.get(name='public_stream', realm=realm)
self.assertTrue(stream.invite_only)

View File

@@ -158,32 +158,22 @@ def remove_default_stream(request, user_profile, stream_name=REQ()):
do_remove_default_stream(user_profile.realm, stream_name)
return json_success()
@authenticated_json_post_view
@require_realm_admin
@has_request_variables
def json_make_stream_public(request, user_profile, stream_name=REQ()):
# type: (HttpRequest, UserProfile, text_type) -> HttpResponse
do_make_stream_public(user_profile, user_profile.realm, stream_name)
return json_success()
@authenticated_json_post_view
@require_realm_admin
@has_request_variables
def json_make_stream_private(request, user_profile, stream_name=REQ()):
# type: (HttpRequest, UserProfile, text_type) -> HttpResponse
do_make_stream_private(user_profile.realm, stream_name)
return json_success()
@require_realm_admin
@has_request_variables
def update_stream_backend(request, user_profile, stream_name,
description=REQ(validator=check_string, default=None),
is_private=REQ(validator=check_bool, default=None),
new_name=REQ(validator=check_string, default=None)):
# type: (HttpRequest, UserProfile, text_type, Optional[text_type], Optional[text_type]) -> HttpResponse
# type: (HttpRequest, UserProfile, text_type, Optional[text_type], Optional[bool], Optional[text_type]) -> HttpResponse
if description is not None:
do_change_stream_description(user_profile.realm, stream_name, description)
if stream_name is not None and new_name is not None:
do_rename_stream(user_profile.realm, stream_name, new_name)
if is_private is not None:
if is_private:
do_make_stream_private(user_profile.realm, stream_name)
else:
do_make_stream_public(user_profile, user_profile.realm, stream_name)
return json_success()
def list_subscriptions_backend(request, user_profile):

View File

@@ -13,8 +13,6 @@ import zerver.views.messages
legacy_urls = [
# These are json format views used by the web client. They require a logged in browser.
url(r'^json/make_stream_public$', zerver.views.streams.json_make_stream_public),
url(r'^json/make_stream_private$', zerver.views.streams.json_make_stream_private),
url(r'^json/invite_users$', zerver.views.invite.json_invite_users),
url(r'^json/bulk_invite_users$', zerver.views.invite.json_bulk_invite_users),
url(r'^json/refer_friend$', zerver.views.invite.json_refer_friend),