Use check_bool instead of json_to_bool.

(imported from commit 52eb892a92e293d6ecb854c51bd7bd32355206c9)
This commit is contained in:
Steve Howell
2014-02-14 09:48:42 -05:00
parent 6c4295ed5b
commit 8b58d8574b
3 changed files with 26 additions and 24 deletions

View File

@@ -5,9 +5,10 @@ from zerver.models import get_client
from zerver.decorator import asynchronous, \ from zerver.decorator import asynchronous, \
authenticated_json_post_view, internal_notify_view, RespondAsynchronously, \ authenticated_json_post_view, internal_notify_view, RespondAsynchronously, \
has_request_variables, json_to_bool, json_to_list, json_to_dict, REQ has_request_variables, json_to_list, json_to_dict, REQ
from zerver.lib.response import json_success, json_error from zerver.lib.response import json_success, json_error
from zerver.lib.validator import check_bool
from zerver.tornado_callbacks import process_notification from zerver.tornado_callbacks import process_notification
from zerver.lib.event_queue import allocate_client_descriptor, get_client_descriptor from zerver.lib.event_queue import allocate_client_descriptor, get_client_descriptor
@@ -45,10 +46,10 @@ def get_events_backend(request, user_profile, handler = None,
user_client = REQ(converter=get_client, default=None), user_client = REQ(converter=get_client, default=None),
last_event_id = REQ(converter=int, default=None), last_event_id = REQ(converter=int, default=None),
queue_id = REQ(default=None), queue_id = REQ(default=None),
apply_markdown = REQ(default=False, converter=json_to_bool), apply_markdown = REQ(default=False, validator=check_bool),
all_public_streams = REQ(default=False, converter=json_to_bool), all_public_streams = REQ(default=False, validator=check_bool),
event_types = REQ(default=None, converter=json_to_list), event_types = REQ(default=None, converter=json_to_list),
dont_block = REQ(default=False, converter=json_to_bool), dont_block = REQ(default=False, validator=check_bool),
narrow = REQ(default=[], converter=json_to_list), narrow = REQ(default=[], converter=json_to_list),
lifespan_secs = REQ(default=0, converter=int)): lifespan_secs = REQ(default=0, converter=int)):
if user_client is None: if user_client is None:

View File

@@ -50,7 +50,7 @@ from openid.consumer.consumer import SUCCESS as openid_SUCCESS
from openid.extensions import ax from openid.extensions import ax
from zerver.lib import bugdown from zerver.lib import bugdown
from zerver.lib.alert_words import user_alert_words from zerver.lib.alert_words import user_alert_words
from zerver.lib.validator import check_string, check_list, check_dict, check_int from zerver.lib.validator import check_string, check_list, check_dict, check_int, check_bool
from zerver.decorator import require_post, \ from zerver.decorator import require_post, \
authenticated_api_view, authenticated_json_post_view, \ authenticated_api_view, authenticated_json_post_view, \
@@ -1012,7 +1012,7 @@ def get_profile_backend(request, user_profile):
@authenticated_json_post_view @authenticated_json_post_view
@has_request_variables @has_request_variables
def json_change_enter_sends(request, user_profile, def json_change_enter_sends(request, user_profile,
enter_sends=REQ('enter_sends', json_to_bool)): enter_sends=REQ('enter_sends', validator=check_bool)):
do_change_enter_sends(user_profile, enter_sends) do_change_enter_sends(user_profile, enter_sends)
return json_success() return json_success()
@@ -1054,9 +1054,9 @@ def json_get_public_streams(request, user_profile):
# i.e. public streams plus invite-only streams that the user is on # i.e. public streams plus invite-only streams that the user is on
@has_request_variables @has_request_variables
def get_streams_backend(request, user_profile, def get_streams_backend(request, user_profile,
include_public=REQ(converter=json_to_bool, default=True), include_public=REQ(validator=check_bool, default=True),
include_subscribed=REQ(converter=json_to_bool, default=True), include_subscribed=REQ(validator=check_bool, default=True),
include_all_active=REQ(converter=json_to_bool, default=False)): include_all_active=REQ(validator=check_bool, default=False)):
if include_all_active and not is_super_user_api(request): if include_all_active and not is_super_user_api(request):
return json_error("User not authorized for this query") return json_error("User not authorized for this query")
@@ -1255,10 +1255,10 @@ def stream_button(stream_name):
def add_subscriptions_backend(request, user_profile, def add_subscriptions_backend(request, user_profile,
streams_raw = REQ("subscriptions", streams_raw = REQ("subscriptions",
validator=check_list(check_dict([['name', check_string]]))), validator=check_list(check_dict([['name', check_string]]))),
invite_only = REQ(converter=json_to_bool, default=False), invite_only = REQ(validator=check_bool, default=False),
announce = REQ(converter=json_to_bool, default=False), announce = REQ(validator=check_bool, default=False),
principals = REQ(validator=check_list(check_string), default=None), principals = REQ(validator=check_list(check_string), default=None),
authorization_errors_fatal = REQ(converter=json_to_bool, default=True)): authorization_errors_fatal = REQ(validator=check_bool, default=True)):
if not user_profile.can_create_streams(): if not user_profile.can_create_streams():
return json_error('User cannot create streams.') return json_error('User cannot create streams.')
@@ -1392,7 +1392,7 @@ def json_get_subscribers(request, user_profile):
@authenticated_json_post_view @authenticated_json_post_view
@has_request_variables @has_request_variables
def json_upload_file(request, user_profile, private=REQ(converter=json_to_bool, default=None)): def json_upload_file(request, user_profile, private=REQ(validator=check_bool, default=None)):
if len(request.FILES) == 0: if len(request.FILES) == 0:
return json_error("You must specify a file to upload") return json_error("You must specify a file to upload")
if len(request.FILES) != 1: if len(request.FILES) != 1:
@@ -1404,7 +1404,7 @@ def json_upload_file(request, user_profile, private=REQ(converter=json_to_bool,
@has_request_variables @has_request_variables
def get_uploaded_file(request, user_profile, realm_id, filename, def get_uploaded_file(request, user_profile, realm_id, filename,
redir=REQ(converter=json_to_bool, default=True)): redir=REQ(validator=check_bool, default=True)):
if settings.LOCAL_UPLOADS_DIR is not None: if settings.LOCAL_UPLOADS_DIR is not None:
return HttpResponseForbidden() # Should have been served by nginx return HttpResponseForbidden() # Should have been served by nginx
@@ -1641,7 +1641,7 @@ def get_status_list(requesting_user_profile):
@has_request_variables @has_request_variables
def update_active_status_backend(request, user_profile, status=REQ, def update_active_status_backend(request, user_profile, status=REQ,
new_user_input=REQ(converter=json_to_bool, default=False)): new_user_input=REQ(validator=check_bool, default=False)):
status_val = UserPresence.status_from_string(status) status_val = UserPresence.status_from_string(status)
if status_val is None: if status_val is None:
raise JsonableError("Invalid presence status: %s" % (status,)) raise JsonableError("Invalid presence status: %s" % (status,))
@@ -1684,8 +1684,8 @@ def json_report_send_time(request, user_profile,
time=REQ(converter=to_non_negative_int), time=REQ(converter=to_non_negative_int),
received=REQ(converter=to_non_negative_int, default="(unknown)"), received=REQ(converter=to_non_negative_int, default="(unknown)"),
displayed=REQ(converter=to_non_negative_int, default="(unknown)"), displayed=REQ(converter=to_non_negative_int, default="(unknown)"),
locally_echoed=REQ(converter=json_to_bool, default=False), locally_echoed=REQ(validator=check_bool, default=False),
rendered_content_disparity=REQ(converter=json_to_bool, default=False)): rendered_content_disparity=REQ(validator=check_bool, default=False)):
request._log_data["extra"] = "[%sms/%sms/%sms/echo:%s/diff:%s]" \ request._log_data["extra"] = "[%sms/%sms/%sms/echo:%s/diff:%s]" \
% (time, received, displayed, locally_echoed, rendered_content_disparity) % (time, received, displayed, locally_echoed, rendered_content_disparity)
statsd.timing("endtoend.send_time.%s" % (statsd_key(user_profile.realm.domain, clean_periods=True),), time) statsd.timing("endtoend.send_time.%s" % (statsd_key(user_profile.realm.domain, clean_periods=True),), time)
@@ -1724,7 +1724,7 @@ def json_report_unnarrow_time(request, user_profile,
@authenticated_json_post_view @authenticated_json_post_view
@has_request_variables @has_request_variables
def json_report_error(request, user_profile, message=REQ, stacktrace=REQ, def json_report_error(request, user_profile, message=REQ, stacktrace=REQ,
ui_message=REQ(converter=json_to_bool), user_agent=REQ, ui_message=REQ(validator=check_bool), user_agent=REQ,
href=REQ, log=REQ, href=REQ, log=REQ,
more_info=REQ(converter=json_to_dict, default=None)): more_info=REQ(converter=json_to_dict, default=None)):
@@ -1765,8 +1765,8 @@ def json_events_register(request, user_profile):
# Does not need to be authenticated because it's called from rest_dispatch # Does not need to be authenticated because it's called from rest_dispatch
@has_request_variables @has_request_variables
def api_events_register(request, user_profile, def api_events_register(request, user_profile,
apply_markdown=REQ(default=False, converter=json_to_bool), apply_markdown=REQ(default=False, validator=check_bool),
all_public_streams=REQ(default=False, converter=json_to_bool)): all_public_streams=REQ(default=False, validator=check_bool)):
return events_register_backend(request, user_profile, return events_register_backend(request, user_profile,
apply_markdown=apply_markdown, apply_markdown=apply_markdown,
all_public_streams=all_public_streams) all_public_streams=all_public_streams)
@@ -1808,7 +1808,7 @@ def reactivate_user_backend(request, user_profile, email):
@has_request_variables @has_request_variables
def update_user_backend(request, user_profile, email, def update_user_backend(request, user_profile, email,
is_admin=REQ(default=None, converter=json_to_bool)): is_admin=REQ(default=None, validator=check_bool)):
try: try:
target = get_user_profile_by_email(email) target = get_user_profile_by_email(email)
except UserProfile.DoesNotExist: except UserProfile.DoesNotExist:

View File

@@ -6,7 +6,7 @@ from django.core.exceptions import ValidationError
from django.db import connection from django.db import connection
from django.db.models import Q from django.db.models import Q
from zerver.decorator import authenticated_api_view, authenticated_json_post_view, \ from zerver.decorator import authenticated_api_view, authenticated_json_post_view, \
has_request_variables, REQ, JsonableError, json_to_bool, \ has_request_variables, REQ, JsonableError, \
to_non_negative_int, to_non_negative_float to_non_negative_int, to_non_negative_float
from django.utils.html import escape as escape_html from django.utils.html import escape as escape_html
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
@@ -19,7 +19,8 @@ from zerver.lib.cache import generic_bulk_cached_fetch
from zerver.lib.query import last_n from zerver.lib.query import last_n
from zerver.lib.response import json_success, json_error from zerver.lib.response import json_success, json_error
from zerver.lib.utils import statsd from zerver.lib.utils import statsd
from zerver.lib.validator import check_list, check_int, check_dict, check_string from zerver.lib.validator import \
check_list, check_int, check_dict, check_string, check_bool
from zerver.models import Message, UserProfile, Stream, \ from zerver.models import Message, UserProfile, Stream, \
Recipient, UserMessage, bulk_get_recipients, get_recipient, \ Recipient, UserMessage, bulk_get_recipients, get_recipient, \
get_user_profile_by_email, get_stream, valid_stream_name, \ get_user_profile_by_email, get_stream, valid_stream_name, \
@@ -548,7 +549,7 @@ def json_update_flags(request, user_profile):
def update_message_flags(request, user_profile, def update_message_flags(request, user_profile,
messages=REQ('messages', validator=check_list(check_int)), messages=REQ('messages', validator=check_list(check_int)),
operation=REQ('op'), flag=REQ('flag'), operation=REQ('op'), flag=REQ('flag'),
all=REQ('all', converter=json_to_bool, default=False)): all=REQ('all', validator=check_bool, default=False)):
request._log_data["extra"] = "[%s %s]" % (operation, flag) request._log_data["extra"] = "[%s %s]" % (operation, flag)
do_update_message_flags(user_profile, operation, flag, messages, all) do_update_message_flags(user_profile, operation, flag, messages, all)
return json_success({'result': 'success', return json_success({'result': 'success',