send_message: Allow list-form "to" for sending to streams.

(imported from commit f1d8c694b5d89d09222d4f303f68841aede64385)
This commit is contained in:
Tim Abbott
2012-11-15 10:39:32 -05:00
parent 18a6014fa3
commit eddc516d5f

View File

@@ -502,7 +502,7 @@ def create_mirrored_message_users(request, user_profile):
@has_request_variables @has_request_variables
def send_message_backend(request, user_profile, client_name, def send_message_backend(request, user_profile, client_name,
message_type_name = POST('type'), message_type_name = POST('type'),
message_to = POST('to'), message_to_raw = POST('to'),
message_content = POST('content')): message_content = POST('content')):
forged = "forged" in request.POST forged = "forged" in request.POST
is_super_user = is_super_user_api(request) is_super_user = is_super_user_api(request)
@@ -536,7 +536,13 @@ def send_message_backend(request, user_profile, client_name,
if message_type_name == 'stream': if message_type_name == 'stream':
if "subject" not in request.POST: if "subject" not in request.POST:
return json_error("Missing subject") return json_error("Missing subject")
stream_name = message_to.strip() try:
message_to = simplejson.loads(message_to_raw)
except simplejson.decoder.JSONDecodeError:
message_to = [message_to_raw]
if len(message_to) != 1:
return json_error("Cannot send to multiple streams")
stream_name = message_to[0].strip()
subject_name = request.POST['subject'].strip() subject_name = request.POST['subject'].strip()
if stream_name == "": if stream_name == "":
return json_error("Stream can't be empty") return json_error("Stream can't be empty")