make username and masto_acct both available as profile handler

This commit is contained in:
Your Name 2023-07-09 10:18:10 -04:00 committed by Henri Dickson
parent 64e5f2c8e9
commit 7d06d50359
3 changed files with 10 additions and 22 deletions

View file

@ -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)
):

View file

@ -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",

View file

@ -6,21 +6,21 @@
<meta charset="UTF-8">
<meta http-equiv="refresh"
content="0;URL={% url 'users:login' %}?next={{ request.path }}" />
<title>{{ site_name }} - {{ username }}@{{ site }}</title>
<title>{{ site_name }} - {{ user.display_name }}</title>
<link rel="alternate"
type="application/rss+xml"
title="{{ site_name }} - {{ username }}@{{ site }}的评论"
title="{{ site_name }} - {{ user.display_name }}的评论"
href="{{ request.build_absolute_uri }}feed/reviews/">
<meta property="og:title"
content="{{ site_name }} - {{ username }}@{{ site }}的书影音">
content="{{ site_name }} - {{ user.display_name }}的主页">
<meta property="og:type" content="website">
<meta property="og:url" content="{{ request.build_absolute_uri }}">
<meta property="og:image"
content="{{ request.scheme }}://{{ request.get_host }}{% static 'img/logo_square.jpg' %}">
</head>
<body>
<a href="https://{{ site }}/@{{ username }}"
rel="me"
style="display:none">Mastodon homepage</a>
{% if user.mastodon_account.url %}
<a href="{{ user.mastodon_account.url }}" rel="me" style="display:none">Mastodon verification</a>
{% endif %}
</body>
</html>