Files
zulip/zerver/views/typing.py
Anders Kaseorg 13a2ac7b8e request: Remove ExtractRecipients type safety hole on REQ.
It was allowing us to get away with wrong types on a few functions:
`check_send_typing_notification` and `send_notification_backend` can be
(and are) called with a list of `int` as `notification_to`, not just a
list of `str`.

The problem it was working around already had a better solution using
the dummy `type` argument.  Use that.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-08-07 15:26:59 -07:00

19 lines
728 B
Python

from django.http import HttpRequest, HttpResponse
from typing import List, Union
from zerver.decorator import has_request_variables, REQ
from zerver.lib.actions import check_send_typing_notification, \
extract_recipients
from zerver.lib.response import json_success
from zerver.models import UserProfile
@has_request_variables
def send_notification_backend(
request: HttpRequest, user_profile: UserProfile,
operator: str=REQ('op'),
notification_to: Union[List[str], List[int]]=REQ(
'to', type=Union[List[str], List[int]], converter=extract_recipients, default=[]),
) -> HttpResponse:
check_send_typing_notification(user_profile, notification_to, operator)
return json_success()