Ejemplo n.º 1
0
def delete_logo_backend(request: HttpRequest, user_profile: UserProfile,
                        night: bool=REQ(validator=check_bool)) -> HttpResponse:
    # We don't actually delete the logo because it might still
    # be needed if the URL was cached and it is rewritten
    # in any case after next update.
    do_change_logo_source(user_profile.realm, user_profile.realm.LOGO_DEFAULT, night, acting_user=user_profile)
    return json_success()
Ejemplo n.º 2
0
def delete_logo_backend(request: HttpRequest, user_profile: UserProfile,
                        night: bool=REQ(validator=check_bool)) -> HttpResponse:
    # We don't actually delete the logo because it might still
    # be needed if the URL was cached and it is rewrited
    # in any case after next update.
    do_change_logo_source(user_profile.realm, user_profile.realm.LOGO_DEFAULT, night)
    return json_success()
Ejemplo n.º 3
0
def delete_logo_backend(request: HttpRequest,
                        user_profile: UserProfile) -> HttpResponse:
    # We don't actually delete the logo because it might still
    # be needed if the URL was cached and it is rewrited
    # in any case after next update.
    do_change_logo_source(user_profile.realm, user_profile.realm.LOGO_DEFAULT)
    default_url = realm_logo_url(user_profile.realm)
    json_result = dict(logo_url=default_url)
    return json_success(json_result)
Ejemplo n.º 4
0
def delete_logo_backend(request: HttpRequest, user_profile: UserProfile) -> HttpResponse:
    # We don't actually delete the logo because it might still
    # be needed if the URL was cached and it is rewrited
    # in any case after next update.
    do_change_logo_source(user_profile.realm, user_profile.realm.LOGO_DEFAULT)
    default_url = realm_logo_url(user_profile.realm)
    json_result = dict(
        logo_url=default_url
    )
    return json_success(json_result)
Ejemplo n.º 5
0
def upload_logo(request: HttpRequest, user_profile: UserProfile,
                night: bool=REQ(validator=check_bool)) -> HttpResponse:
    user_profile.realm.ensure_not_on_limited_plan()

    if len(request.FILES) != 1:
        return json_error(_("You must upload exactly one logo."))
    logo_file = list(request.FILES.values())[0]
    if ((settings.MAX_LOGO_FILE_SIZE * 1024 * 1024) < logo_file.size):
        return json_error(_("Uploaded file is larger than the allowed limit of {} MiB").format(
            settings.MAX_LOGO_FILE_SIZE,
        ))
    upload_logo_image(logo_file, user_profile, night)
    do_change_logo_source(user_profile.realm, user_profile.realm.LOGO_UPLOADED, night, acting_user=user_profile)
    return json_success()
Ejemplo n.º 6
0
def upload_logo(request: HttpRequest, user_profile: UserProfile,
                night: bool=REQ(validator=check_bool)) -> HttpResponse:
    if user_profile.realm.plan_type == Realm.LIMITED:
        return json_error(_("Feature unavailable on your current plan."))

    if len(request.FILES) != 1:
        return json_error(_("You must upload exactly one logo."))
    logo_file = list(request.FILES.values())[0]
    if ((settings.MAX_LOGO_FILE_SIZE * 1024 * 1024) < logo_file.size):
        return json_error(_("Uploaded file is larger than the allowed limit of %s MB") % (
            settings.MAX_LOGO_FILE_SIZE))
    upload_logo_image(logo_file, user_profile, night)
    do_change_logo_source(user_profile.realm, user_profile.realm.LOGO_UPLOADED, night)
    return json_success()
Ejemplo n.º 7
0
def upload_logo(
    request: HttpRequest,
    user_profile: UserProfile,
    night: bool = REQ(validator=check_bool)
) -> HttpResponse:
    if user_profile.realm.plan_type == Realm.LIMITED:
        return json_error(_("Feature unavailable on your current plan."))

    if len(request.FILES) != 1:
        return json_error(_("You must upload exactly one logo."))
    logo_file = list(request.FILES.values())[0]
    if ((settings.MAX_LOGO_FILE_SIZE * 1024 * 1024) < logo_file.size):
        return json_error(
            _("Uploaded file is larger than the allowed limit of %s MB") %
            (settings.MAX_LOGO_FILE_SIZE))
    upload_logo_image(logo_file, user_profile, night)
    do_change_logo_source(user_profile.realm, user_profile.realm.LOGO_UPLOADED,
                          night)
    return json_success()
Ejemplo n.º 8
0
    def test_compute_navbar_logo_url(self) -> None:
        user_profile = self.example_user("hamlet")

        page_params = {"night_mode": True}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(compute_navbar_logo_url(page_params),
                         "/static/images/logo/zulip-org-logo.png?version=0")

        page_params = {"night_mode": False}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(compute_navbar_logo_url(page_params),
                         "/static/images/logo/zulip-org-logo.png?version=0")

        do_change_logo_source(user_profile.realm,
                              Realm.LOGO_UPLOADED,
                              night=False)
        page_params = {"night_mode": True}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(
            compute_navbar_logo_url(page_params),
            f"/user_avatars/{user_profile.realm_id}/realm/logo.png?version=2")

        page_params = {"night_mode": False}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(
            compute_navbar_logo_url(page_params),
            f"/user_avatars/{user_profile.realm_id}/realm/logo.png?version=2")

        do_change_logo_source(user_profile.realm,
                              Realm.LOGO_UPLOADED,
                              night=True)
        page_params = {"night_mode": True}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(
            compute_navbar_logo_url(page_params),
            f"/user_avatars/{user_profile.realm_id}/realm/night_logo.png?version=2"
        )

        page_params = {"night_mode": False}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(
            compute_navbar_logo_url(page_params),
            f"/user_avatars/{user_profile.realm_id}/realm/logo.png?version=2")

        # This configuration isn't super supported in the UI and is a
        # weird choice, but we have a test for it anyway.
        do_change_logo_source(user_profile.realm,
                              Realm.LOGO_DEFAULT,
                              night=False)
        page_params = {"night_mode": True}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(
            compute_navbar_logo_url(page_params),
            f"/user_avatars/{user_profile.realm_id}/realm/night_logo.png?version=2"
        )

        page_params = {"night_mode": False}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(compute_navbar_logo_url(page_params),
                         "/static/images/logo/zulip-org-logo.png?version=0")
Ejemplo n.º 9
0
    def test_compute_navbar_logo_url(self) -> None:
        user_profile = self.example_user("hamlet")

        page_params = {"night_mode": True}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(compute_navbar_logo_url(page_params),
                         "/static/images/logo/zulip-org-logo.png?version=0")

        page_params = {"night_mode": False}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(compute_navbar_logo_url(page_params),
                         "/static/images/logo/zulip-org-logo.png?version=0")

        do_change_logo_source(user_profile.realm, Realm.LOGO_UPLOADED, night=False)
        page_params = {"night_mode": True}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(compute_navbar_logo_url(page_params),
                         "/user_avatars/1/realm/logo.png?version=2")

        page_params = {"night_mode": False}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(compute_navbar_logo_url(page_params),
                         "/user_avatars/1/realm/logo.png?version=2")

        do_change_logo_source(user_profile.realm, Realm.LOGO_UPLOADED, night=True)
        page_params = {"night_mode": True}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(compute_navbar_logo_url(page_params),
                         "/user_avatars/1/realm/night_logo.png?version=2")

        page_params = {"night_mode": False}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(compute_navbar_logo_url(page_params),
                         "/user_avatars/1/realm/logo.png?version=2")

        # This configuration isn't super supported in the UI and is a
        # weird choice, but we have a test for it anyway.
        do_change_logo_source(user_profile.realm, Realm.LOGO_DEFAULT, night=False)
        page_params = {"night_mode": True}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(compute_navbar_logo_url(page_params),
                         "/user_avatars/1/realm/night_logo.png?version=2")

        page_params = {"night_mode": False}
        add_realm_logo_fields(page_params, user_profile.realm)
        self.assertEqual(compute_navbar_logo_url(page_params),
                         "/static/images/logo/zulip-org-logo.png?version=0")