- {{ 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 {