示例#1
0
def delete_icon_backend(request: HttpRequest,
                        user_profile: UserProfile) -> HttpResponse:
    # We don't actually delete the icon because it might still
    # be needed if the URL was cached and it is rewrited
    # in any case after next update.
    do_change_icon_source(user_profile.realm,
                          user_profile.realm.ICON_FROM_GRAVATAR)
    gravatar_url = realm_icon_url(user_profile.realm)
    json_result = dict(icon_url=gravatar_url, )
    return json_success(json_result)
示例#2
0
def delete_icon_backend(request: HttpRequest, user_profile: UserProfile) -> HttpResponse:
    # We don't actually delete the icon because it might still
    # be needed if the URL was cached and it is rewrited
    # in any case after next update.
    do_change_icon_source(user_profile.realm, user_profile.realm.ICON_FROM_GRAVATAR)
    gravatar_url = realm_icon_url(user_profile.realm)
    json_result = dict(
        icon_url=gravatar_url
    )
    return json_success(json_result)
示例#3
0
def upload_icon(request, user_profile):
    # type: (HttpRequest, UserProfile) -> HttpResponse

    if len(request.FILES) != 1:
        return json_error(_("You must upload exactly one icon."))

    icon_file = list(request.FILES.values())[0]
    upload_icon_image(icon_file, user_profile)
    do_change_icon_source(user_profile.realm, user_profile.realm.ICON_UPLOADED)
    icon_url = realm_icon_url(user_profile.realm)

    json_result = dict(icon_url=icon_url)
    return json_success(json_result)
示例#4
0
 def test_change_icon_source(self) -> None:
     test_start = timezone_now()
     realm = get_realm('zulip')
     user = self.example_user('hamlet')
     icon_source = 'G'
     do_change_icon_source(realm, icon_source, acting_user=user)
     audit_entries = RealmAuditLog.objects.filter(
         realm=realm,
         event_type=RealmAuditLog.REALM_ICON_SOURCE_CHANGED,
         acting_user=user,
         event_time__gte=test_start)
     self.assertEqual(len(audit_entries), 1)
     self.assertEqual(icon_source, realm.icon_source)
     self.assertEqual(audit_entries.first().extra_data,
                      "{'icon_source': 'G', 'icon_version': 2}")
示例#5
0
def upload_icon(request: HttpRequest,
                user_profile: UserProfile) -> HttpResponse:

    if len(request.FILES) != 1:
        return json_error(_("You must upload exactly one icon."))

    icon_file = list(request.FILES.values())[0]
    if ((settings.MAX_ICON_FILE_SIZE * 1024 * 1024) < icon_file.size):
        return json_error(
            _("Uploaded file is larger than the allowed limit of {} MiB").
            format(settings.MAX_ICON_FILE_SIZE, ))
    upload_icon_image(icon_file, user_profile)
    do_change_icon_source(user_profile.realm, user_profile.realm.ICON_UPLOADED)
    icon_url = realm_icon_url(user_profile.realm)

    json_result = dict(icon_url=icon_url, )
    return json_success(json_result)
示例#6
0
 def test_change_icon_source(self) -> None:
     test_start = timezone_now()
     realm = get_realm("zulip")
     user = self.example_user("hamlet")
     icon_source = "G"
     do_change_icon_source(realm, icon_source, acting_user=user)
     audit_entries = RealmAuditLog.objects.filter(
         realm=realm,
         event_type=RealmAuditLog.REALM_ICON_SOURCE_CHANGED,
         acting_user=user,
         event_time__gte=test_start,
     )
     audit_log = audit_entries.first()
     assert audit_log is not None
     self.assert_length(audit_entries, 1)
     self.assertEqual(icon_source, realm.icon_source)
     self.assertEqual(audit_log.extra_data, "{'icon_source': 'G', 'icon_version': 2}")
示例#7
0
def upload_icon(request: HttpRequest, user_profile: UserProfile) -> HttpResponse:

    if len(request.FILES) != 1:
        return json_error(_("You must upload exactly one icon."))

    icon_file = list(request.FILES.values())[0]
    if ((settings.MAX_ICON_FILE_SIZE * 1024 * 1024) < icon_file.size):
        return json_error(_("Uploaded file is larger than the allowed limit of %s MB") % (
            settings.MAX_ICON_FILE_SIZE))
    upload_icon_image(icon_file, user_profile)
    do_change_icon_source(user_profile.realm, user_profile.realm.ICON_UPLOADED)
    icon_url = realm_icon_url(user_profile.realm)

    json_result = dict(
        icon_url=icon_url
    )
    return json_success(json_result)