Add backend support for realm admins to rename streams.

(imported from commit eaf419f1f68dfd350b8c99e8a5089ec316f0c409)
This commit is contained in:
Jessica McKellar 2013-09-10 05:46:18 -04:00
parent b9da1e1976
commit cfeaa2be9b
3 changed files with 16 additions and 2 deletions

View File

@ -961,6 +961,10 @@ def do_rename_stream(realm, old_name, new_name, log=True):
tornado_callbacks.send_notification(notice) tornado_callbacks.send_notification(notice)
# Even though the token doesn't change, the web client needs to update the
# email forwarding address to display the correctly-escaped new name.
return {"email_address": encode_email_address(stream)}
def do_create_realm(domain, restricted_to_domain=True): def do_create_realm(domain, restricted_to_domain=True):
realm = get_realm(domain) realm = get_realm(domain)
created = not realm created = not realm

View File

@ -37,7 +37,7 @@ from zerver.lib.actions import do_remove_subscription, bulk_remove_subscriptions
do_send_messages, do_add_subscription, get_default_subs, do_deactivate, \ do_send_messages, do_add_subscription, get_default_subs, do_deactivate, \
user_email_is_unique, do_invite_users, do_refer_friend, compute_mit_user_fullname, \ user_email_is_unique, do_invite_users, do_refer_friend, compute_mit_user_fullname, \
do_add_alert_words, do_remove_alert_words, do_set_alert_words, get_subscribers, \ do_add_alert_words, do_remove_alert_words, do_set_alert_words, get_subscribers, \
update_user_activity_interval, do_set_muted_topics update_user_activity_interval, do_set_muted_topics, do_rename_stream
from zerver.lib.create_user import random_api_key from zerver.lib.create_user import random_api_key
from zerver.forms import RegistrationForm, HomepageForm, ToSForm, CreateBotForm, \ from zerver.forms import RegistrationForm, HomepageForm, ToSForm, CreateBotForm, \
is_inactive, isnt_mit, not_mit_mailing_list is_inactive, isnt_mit, not_mit_mailing_list
@ -712,7 +712,8 @@ def home(request):
furthest_read_time = sent_time_in_epoch_seconds(latest_read), furthest_read_time = sent_time_in_epoch_seconds(latest_read),
onboarding_steps = ujson.loads(user_profile.onboarding_steps), onboarding_steps = ujson.loads(user_profile.onboarding_steps),
staging = settings.STAGING_DEPLOYED or not settings.DEPLOYED, staging = settings.STAGING_DEPLOYED or not settings.DEPLOYED,
alert_words = register_ret['alert_words'] alert_words = register_ret['alert_words'],
show_admin = user_profile.show_admin
)) ))
statsd.incr('views.home') statsd.incr('views.home')
@ -1404,6 +1405,14 @@ def get_public_streams_backend(request, user_profile):
return get_streams_backend(request, user_profile, include_public=True, return get_streams_backend(request, user_profile, include_public=True,
include_subscribed=False, include_all_active=False) include_subscribed=False, include_all_active=False)
@authenticated_json_post_view
@has_request_variables
def json_rename_stream(request, user_profile, old_name=REQ, new_name=REQ):
if not user_profile.has_perm('administer', user_profile.realm):
return json_error("Insufficient permission to rename stream")
return json_success(do_rename_stream(user_profile.realm, old_name, new_name))
@authenticated_api_view @authenticated_api_view
def api_list_subscriptions(request, user_profile): def api_list_subscriptions(request, user_profile):
return list_subscriptions_backend(request, user_profile) return list_subscriptions_backend(request, user_profile)

View File

@ -94,6 +94,7 @@ urlpatterns += patterns('zerver.views',
url(r'^json/update_pointer$', 'json_update_pointer'), url(r'^json/update_pointer$', 'json_update_pointer'),
url(r'^json/get_old_messages$', 'json_get_old_messages'), url(r'^json/get_old_messages$', 'json_get_old_messages'),
url(r'^json/get_public_streams$', 'json_get_public_streams'), url(r'^json/get_public_streams$', 'json_get_public_streams'),
url(r'^json/rename_stream$', 'json_rename_stream'),
url(r'^json/send_message$', 'json_send_message'), url(r'^json/send_message$', 'json_send_message'),
url(r'^json/invite_users$', 'json_invite_users'), url(r'^json/invite_users$', 'json_invite_users'),
url(r'^json/bulk_invite_users$', 'json_bulk_invite_users'), url(r'^json/bulk_invite_users$', 'json_bulk_invite_users'),