fix: custom_css setting
This commit is contained in:
parent
d128b2c438
commit
2a99d49c8a
4 changed files with 26 additions and 3 deletions
|
@ -595,7 +595,7 @@
|
||||||
("style" "display: none;")
|
("style" "display: none;")
|
||||||
(text "{{ self::theme_color(color=user.settings.theme_color_surface, css=\"color-surface\") }} {{ self::theme_color(color=user.settings.theme_color_text, css=\"color-text\") }} {{ self::theme_color(color=user.settings.theme_color_text_link, css=\"color-link\") }} {{ self::theme_color(color=user.settings.theme_color_lowered, css=\"color-lowered\") }} {{ self::theme_color(color=user.settings.theme_color_text_lowered, css=\"color-text-lowered\") }} {{ self::theme_color(color=user.settings.theme_color_super_lowered, css=\"color-super-lowered\") }} {{ self::theme_color(color=user.settings.theme_color_raised, css=\"color-raised\") }} {{ self::theme_color(color=user.settings.theme_color_text_raised, css=\"color-text-raised\") }} {{ self::theme_color(color=user.settings.theme_color_super_raised, css=\"color-super-raised\") }} {{ self::theme_color(color=user.settings.theme_color_primary, css=\"color-primary\") }} {{ self::theme_color(color=user.settings.theme_color_text_primary, css=\"color-text-primary\") }} {{ self::theme_color(color=user.settings.theme_color_primary_lowered, css=\"color-primary-lowered\") }} {{ self::theme_color(color=user.settings.theme_color_secondary, css=\"color-secondary\") }} {{ self::theme_color(color=user.settings.theme_color_text_secondary, css=\"color-text-secondary\") }} {{ self::theme_color(color=user.settings.theme_color_secondary_lowered, css=\"color-secondary-lowered\") }} {% if user.permissions|has_supporter -%}")
|
(text "{{ self::theme_color(color=user.settings.theme_color_surface, css=\"color-surface\") }} {{ self::theme_color(color=user.settings.theme_color_text, css=\"color-text\") }} {{ self::theme_color(color=user.settings.theme_color_text_link, css=\"color-link\") }} {{ self::theme_color(color=user.settings.theme_color_lowered, css=\"color-lowered\") }} {{ self::theme_color(color=user.settings.theme_color_text_lowered, css=\"color-text-lowered\") }} {{ self::theme_color(color=user.settings.theme_color_super_lowered, css=\"color-super-lowered\") }} {{ self::theme_color(color=user.settings.theme_color_raised, css=\"color-raised\") }} {{ self::theme_color(color=user.settings.theme_color_text_raised, css=\"color-text-raised\") }} {{ self::theme_color(color=user.settings.theme_color_super_raised, css=\"color-super-raised\") }} {{ self::theme_color(color=user.settings.theme_color_primary, css=\"color-primary\") }} {{ self::theme_color(color=user.settings.theme_color_text_primary, css=\"color-text-primary\") }} {{ self::theme_color(color=user.settings.theme_color_primary_lowered, css=\"color-primary-lowered\") }} {{ self::theme_color(color=user.settings.theme_color_secondary, css=\"color-secondary\") }} {{ self::theme_color(color=user.settings.theme_color_text_secondary, css=\"color-text-secondary\") }} {{ self::theme_color(color=user.settings.theme_color_secondary_lowered, css=\"color-secondary-lowered\") }} {% if user.permissions|has_supporter -%}")
|
||||||
(style
|
(style
|
||||||
(text "{{ user.settings.theme_custom_css }}"))
|
(text "{{ user.settings.theme_custom_css|safe|remove_script_tags }}"))
|
||||||
(text "{%- endif %}"))
|
(text "{%- endif %}"))
|
||||||
|
|
||||||
(text "{%- endif %} {%- endmacro %} {% macro theme_color(color, css) -%} {% if color -%}")
|
(text "{%- endif %} {%- endmacro %} {% macro theme_color(color, css) -%} {% if color -%}")
|
||||||
|
|
|
@ -66,7 +66,7 @@ pub async fn stripe_webhook(
|
||||||
}
|
}
|
||||||
EventType::InvoicePaymentSucceeded => {
|
EventType::InvoicePaymentSucceeded => {
|
||||||
// payment finished and subscription created
|
// payment finished and subscription created
|
||||||
// we're doing this *instead* of CustomerSubscriptionDeleted because
|
// we're doing this *instead* of CustomerSubscriptionCreated because
|
||||||
// the invoice happens *after* the checkout session ends... which is what we need
|
// the invoice happens *after* the checkout session ends... which is what we need
|
||||||
let invoice = match req.data.object {
|
let invoice = match req.data.object {
|
||||||
EventObject::Invoice(c) => c,
|
EventObject::Invoice(c) => c,
|
||||||
|
|
|
@ -71,6 +71,27 @@ pub async fn redirect_from_ip(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn redirect_from_stripe_id(
|
||||||
|
jar: CookieJar,
|
||||||
|
Extension(data): Extension<State>,
|
||||||
|
Path(id): Path<String>,
|
||||||
|
) -> impl IntoResponse {
|
||||||
|
let data = &(data.read().await).0;
|
||||||
|
let user = match get_user_from_token!(jar, data) {
|
||||||
|
Some(ua) => ua,
|
||||||
|
None => return Redirect::to("/"),
|
||||||
|
};
|
||||||
|
|
||||||
|
if !user.permissions.check(FinePermission::MANAGE_USERS) {
|
||||||
|
return Redirect::to("/");
|
||||||
|
}
|
||||||
|
|
||||||
|
match data.get_user_by_stripe_id(&id).await {
|
||||||
|
Ok(u) => Redirect::to(&format!("/@{}", u.username)),
|
||||||
|
Err(_) => Redirect::to("/"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub async fn me_request(jar: CookieJar, Extension(data): Extension<State>) -> impl IntoResponse {
|
pub async fn me_request(jar: CookieJar, Extension(data): Extension<State>) -> impl IntoResponse {
|
||||||
let data = &(data.read().await).0;
|
let data = &(data.read().await).0;
|
||||||
let user = match get_user_from_token!(jar, data, oauth::AppScope::UserReadProfile) {
|
let user = match get_user_from_token!(jar, data, oauth::AppScope::UserReadProfile) {
|
||||||
|
|
|
@ -10,6 +10,8 @@ use axum::{
|
||||||
use pathbufd::PathBufD;
|
use pathbufd::PathBufD;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
|
|
||||||
|
pub const MAXIMUM_PROXY_FILE_SIZE: u64 = 4194304; // 4 MiB
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
pub struct ProxyQuery {
|
pub struct ProxyQuery {
|
||||||
pub url: String,
|
pub url: String,
|
||||||
|
@ -58,7 +60,7 @@ pub async fn proxy_request(
|
||||||
match http.get(image_url).send().await {
|
match http.get(image_url).send().await {
|
||||||
Ok(stream) => {
|
Ok(stream) => {
|
||||||
let size = stream.content_length();
|
let size = stream.content_length();
|
||||||
if size.unwrap_or_default() > 10485760 {
|
if size.unwrap_or_default() > MAXIMUM_PROXY_FILE_SIZE {
|
||||||
// return defualt image (content too big)
|
// return defualt image (content too big)
|
||||||
return (
|
return (
|
||||||
[("Content-Type", "image/svg+xml")],
|
[("Content-Type", "image/svg+xml")],
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue