diff --git a/crates/app/src/public/html/components.html b/crates/app/src/public/html/components.html index e4da88d..98a0109 100644 --- a/crates/app/src/public/html/components.html +++ b/crates/app/src/public/html/components.html @@ -598,16 +598,49 @@ and user %} {% endif %} {%- endmacro %} {% macro question(question, owner, show_community=true, secondary=false) -%}
+ {% if owner.id == 0 %} + + {% if profile and profile.settings.anonymous_avatar_url %} + anonymous' avatar + {% else %} {{ components::avatar(username=owner.username, + selector_type="username", size="52px") }} {% endif %} + + {% else %} {{ components::avatar(username=owner.username, selector_type="username", size="52px") }} + {% endif %}
- {{ components::full_username(user=owner) }} + + + {% if owner.id == 0 %} + {% if profile and profile.settings.anonymous_username %} + + {{ profile.settings.anonymous_username }} + + {{ icon "drama" }} + + + {% else %} + anonymous + {% endif %} + {% else %} + {{ components::full_username(user=owner) }} + {% endif %} + {{ question.created }} diff --git a/crates/app/src/public/html/profile/settings.html b/crates/app/src/public/html/profile/settings.html index 632ee0f..7d2daa2 100644 --- a/crates/app/src/public/html/profile/settings.html +++ b/crates/app/src/public/html/profile/settings.html @@ -799,6 +799,17 @@ settings.motivational_header, "input", ], + [[], "Anonymous", "title"], + [ + ["anonymous_username", "Anonymous username"], + settings.anonymous_username, + "input", + ], + [ + ["anonymous_avatar_url", "Anonymous avatar URL"], + settings.anonymous_avatar_url, + "input", + ], ], settings, ); diff --git a/crates/core/src/model/auth.rs b/crates/core/src/model/auth.rs index 56428a1..2e6fe96 100644 --- a/crates/core/src/model/auth.rs +++ b/crates/core/src/model/auth.rs @@ -139,6 +139,12 @@ pub struct UserSettings { /// If questions from anonymous users are allowed. Requires `enable_questions`. #[serde(default)] pub allow_anonymous_questions: bool, + /// The username used for anonymous users. + #[serde(default)] + pub anonymous_username: String, + /// The URL of the avatar used for anonymous users. + #[serde(default)] + pub anonymous_avatar_url: String, } impl Default for User {