diff --git a/journal/views.py b/journal/views.py index a2d7b49a..57270903 100644 --- a/journal/views.py +++ b/journal/views.py @@ -839,30 +839,16 @@ def user_liked_collection_list(request, user_name): ) -def profile_anonymous(request, id): - try: - username = id.split("@")[0] - site = id.split("@")[1] - return render( - request, - "users/home_anonymous.html", - {"username": username, "site": site}, - ) - except Exception: - return redirect(login_url) - - def profile(request, user_name): if request.method != "GET": raise BadRequest() user = User.get(user_name, case_sensitive=True) if user is None or not user.is_active: return render_user_not_found(request) - if user.handler != user_name: + if user.mastodon_acct != user_name and user.username != user_name: return redirect(user.url) if not request.user.is_authenticated and user.get_preference().no_anonymous_view: - return profile_anonymous(request, user_name) - # access one's own home page + return render(request, "users/home_anonymous.html", {"user": user}) if user != request.user and ( user.is_blocked_by(request.user) or user.is_blocking(request.user) ): diff --git a/users/data.py b/users/data.py index 39b3409e..024322f0 100644 --- a/users/data.py +++ b/users/data.py @@ -27,6 +27,7 @@ def preferences(request): if request.method == "POST": preference.default_visibility = int(request.POST.get("default_visibility")) preference.default_no_share = bool(request.POST.get("default_no_share")) + preference.no_anonymous_view = bool(request.POST.get("no_anonymous_view")) preference.classic_homepage = int(request.POST.get("classic_homepage")) preference.mastodon_publish_public = bool( request.POST.get("mastodon_publish_public") @@ -39,6 +40,7 @@ def preferences(request): update_fields=[ "default_visibility", "default_no_share", + "no_anonymous_view", "classic_homepage", "mastodon_publish_public", "mastodon_append_tag", diff --git a/users/templates/users/home_anonymous.html b/users/templates/users/home_anonymous.html index 301811e2..5fb098ee 100644 --- a/users/templates/users/home_anonymous.html +++ b/users/templates/users/home_anonymous.html @@ -6,21 +6,21 @@ - {{ site_name }} - {{ username }}@{{ site }} + {{ site_name }} - {{ user.display_name }} + content="{{ site_name }} - {{ user.display_name }}的主页"> - Mastodon homepage + {% if user.mastodon_account.url %} + Mastodon verification + {% endif %}