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()
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()
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)
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)
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()
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()
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()
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")
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")