Esempio n. 1
0
def upload_emoji(
    request: HttpRequest,
    user_profile: UserProfile,
    emoji_name: str = REQ(path_only=True)
) -> HttpResponse:
    emoji_name = emoji_name.strip().replace(" ", "_")
    check_valid_emoji_name(emoji_name)
    check_emoji_admin(user_profile)
    if RealmEmoji.objects.filter(realm=user_profile.realm,
                                 name=emoji_name,
                                 deactivated=False).exists():
        return json_error(_("A custom emoji with this name already exists."))
    if len(request.FILES) != 1:
        return json_error(_("You must upload exactly one file."))
    emoji_file = list(request.FILES.values())[0]
    if (settings.MAX_EMOJI_FILE_SIZE * 1024 * 1024) < emoji_file.size:
        return json_error(
            _("Uploaded file is larger than the allowed limit of {} MiB").
            format(settings.MAX_EMOJI_FILE_SIZE, ))

    realm_emoji = check_add_realm_emoji(user_profile.realm, emoji_name,
                                        user_profile, emoji_file)
    if realm_emoji is None:
        return json_error(_("Image file upload failed."))
    return json_success()
Esempio n. 2
0
def delete_emoji(request: HttpRequest, user_profile: UserProfile, emoji_name: str) -> HttpResponse:
    if not RealmEmoji.objects.filter(
        realm=user_profile.realm, name=emoji_name, deactivated=False
    ).exists():
        raise JsonableError(_("Emoji '{}' does not exist").format(emoji_name))
    check_emoji_admin(user_profile, emoji_name)
    do_remove_realm_emoji(user_profile.realm, emoji_name)
    return json_success()
Esempio n. 3
0
def delete_emoji(request: HttpRequest, user_profile: UserProfile,
                 emoji_name: str) -> HttpResponse:
    if not RealmEmoji.objects.filter(realm=user_profile.realm,
                                     name=emoji_name,
                                     deactivated=False).exists():
        raise JsonableError(_("Emoji '%s' does not exist" % (emoji_name,)))
    check_emoji_admin(user_profile, emoji_name)
    do_remove_realm_emoji(user_profile.realm, emoji_name)
    return json_success()
Esempio n. 4
0
def upload_emoji(request, user_profile, emoji_name=None, url=REQ()):
    # type: (HttpRequest, UserProfile, Text, Text) -> HttpResponse
    check_valid_emoji_name(emoji_name)
    check_emoji_admin(user_profile)
    check_add_realm_emoji(user_profile.realm,
                          emoji_name,
                          url,
                          author=user_profile)
    return json_success()
Esempio n. 5
0
def upload_emoji(request, user_profile, emoji_name=None, url=REQ()):
    # type: (HttpRequest, UserProfile, Text, Text) -> HttpResponse
    check_valid_emoji_name(emoji_name)
    check_emoji_admin(user_profile)
    try:
        check_add_realm_emoji(user_profile.realm, emoji_name, url, author=user_profile)
    except ValidationError as e:
        return json_error(e.messages[0])
    return json_success()
Esempio n. 6
0
def upload_emoji(request, user_profile, emoji_name=None, url=REQ()):
    # type: (HttpRequest, UserProfile, Text, Text) -> HttpResponse
    check_valid_emoji_name(emoji_name)
    check_emoji_admin(user_profile)
    try:
        check_add_realm_emoji(user_profile.realm,
                              emoji_name,
                              url,
                              author=user_profile)
    except ValidationError as e:
        return json_error(e.messages[0])
    return json_success()
Esempio n. 7
0
def upload_emoji(request: HttpRequest, user_profile: UserProfile,
                 emoji_name: Text=REQ()) -> HttpResponse:
    check_valid_emoji_name(emoji_name)
    check_emoji_admin(user_profile)
    if len(request.FILES) != 1:
        return json_error(_("You must upload exactly one file."))
    emoji_file = list(request.FILES.values())[0]
    if (settings.MAX_EMOJI_FILE_SIZE * 1024 * 1024) < emoji_file.size:
        return json_error(_("Uploaded file is larger than the allowed limit of %s MB") % (
            settings.MAX_EMOJI_FILE_SIZE))
    emoji_file_name = get_emoji_file_name(emoji_file.name, emoji_name)
    upload_emoji_image(emoji_file, emoji_file_name, user_profile)
    try:
        check_add_realm_emoji(user_profile.realm, emoji_name, emoji_file_name, author=user_profile)
    except ValidationError as e:
        return json_error(e.messages[0])
    return json_success()
Esempio n. 8
0
def upload_emoji(request, user_profile, emoji_name=REQ()):
    # type: (HttpRequest, UserProfile, Text) -> HttpResponse
    check_valid_emoji_name(emoji_name)
    check_emoji_admin(user_profile)
    if len(request.FILES) != 1:
        return json_error(_("You must upload exactly one file."))
    emoji_file = list(request.FILES.values())[0]
    if (settings.MAX_EMOJI_FILE_SIZE * 1024 * 1024) < emoji_file.size:
        return json_error(
            _("Uploaded file is larger than the allowed limit of %s MB") %
            (settings.MAX_EMOJI_FILE_SIZE))
    emoji_file_name = get_emoji_file_name(emoji_file.name, emoji_name)
    upload_emoji_image(emoji_file, emoji_file_name, user_profile)
    try:
        check_add_realm_emoji(user_profile.realm,
                              emoji_name,
                              emoji_file_name,
                              author=user_profile)
    except ValidationError as e:
        return json_error(e.messages[0])
    return json_success()
Esempio n. 9
0
def upload_emoji(request: HttpRequest, user_profile: UserProfile,
                 emoji_name: str=REQ()) -> HttpResponse:
    check_valid_emoji_name(emoji_name)
    check_emoji_admin(user_profile)
    if RealmEmoji.objects.filter(realm=user_profile.realm,
                                 name=emoji_name,
                                 deactivated=False).exists():
        return json_error(_("A custom emoji with this name already exists."))
    if len(request.FILES) != 1:
        return json_error(_("You must upload exactly one file."))
    emoji_file = list(request.FILES.values())[0]
    if (settings.MAX_EMOJI_FILE_SIZE * 1024 * 1024) < emoji_file.size:
        return json_error(_("Uploaded file is larger than the allowed limit of %s MB") % (
            settings.MAX_EMOJI_FILE_SIZE))

    realm_emoji = check_add_realm_emoji(user_profile.realm,
                                        emoji_name,
                                        user_profile,
                                        emoji_file)
    if realm_emoji is None:
        return json_error(_("Image file upload failed."))
    return json_success()
Esempio n. 10
0
def delete_emoji(request, user_profile, emoji_name):
    # type: (HttpRequest, UserProfile, Text) -> HttpResponse
    check_emoji_admin(user_profile)
    check_valid_emoji(user_profile.realm, emoji_name)
    do_remove_realm_emoji(user_profile.realm, emoji_name)
    return json_success()
Esempio n. 11
0
def upload_emoji(request, user_profile, emoji_name=None, url=REQ()):
    # type: (HttpRequest, UserProfile, Text, Text) -> HttpResponse
    check_valid_emoji_name(emoji_name)
    check_emoji_admin(user_profile)
    check_add_realm_emoji(user_profile.realm, emoji_name, url, author=user_profile)
    return json_success()
Esempio n. 12
0
def delete_emoji(request, user_profile, emoji_name):
    # type: (HttpRequest, UserProfile, Text) -> HttpResponse
    check_emoji_admin(user_profile)
    check_valid_emoji(user_profile.realm, emoji_name)
    do_remove_realm_emoji(user_profile.realm, emoji_name)
    return json_success()