stop using g.user in web, part of redirect

for #690
pull/731/head
Ryan Barrett 2023-11-19 21:07:56 -08:00
rodzic fefcbbb77e
commit 990ec47c89
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6BE31FDF4776E9D4
2 zmienionych plików z 29 dodań i 27 usunięć

Wyświetl plik

@ -87,8 +87,7 @@ def redir(to):
if domain:
if domain in DOMAIN_ALLOWLIST:
break
g.user = Web.get_by_id(domain)
if g.user:
if Web.get_by_id(domain):
logger.info(f'Found web user for domain {domain}')
break
else:

53
web.py
Wyświetl plik

@ -494,8 +494,8 @@ def check_web_site():
return render_template('enter_web_site.html'), 400
try:
g.user = Web.get_or_create(domain, direct=True)
g.user = g.user.verify()
user = Web.get_or_create(domain, direct=True)
user = user.verify()
except BaseException as e:
code, body = util.interpret_http_exception(e)
if code:
@ -503,8 +503,8 @@ def check_web_site():
return render_template('enter_web_site.html')
raise
g.user.put()
return redirect(g.user.user_page_path())
user.put()
return redirect(user.user_page_path())
@app.post('/webmention')
@ -524,8 +524,8 @@ def webmention_external():
if not domain:
error(f'Bad source URL {source}')
g.user = Web.get_by_id(domain)
if not g.user:
user = Web.get_by_id(domain)
if not user:
error(f'No user found for domain {domain}')
return common.create_task('webmention', **request.form)
@ -537,14 +537,17 @@ def webmention_interactive():
...eg the update profile button on user pages.
"""
source = flask_util.get_required_param('source').strip()
try:
webmention_external()
flash(f'Updating fediverse profile from <a href="{g.user.web_url()}">{g.user.key.id()}</a>...')
user = Web(id=util.domain_from_link(source, minimize=False))
flash(f'Updating fediverse profile from <a href="{user.web_url()}">{user.key.id()}</a>...')
return redirect(user.user_page_path(), code=302)
except HTTPException as e:
flash(util.linkify(str(e.description), pretty=True))
path = g.user.user_page_path() if g.user else '/'
return redirect(path, code=302)
return redirect('/', code=302)
@app.post('/queue/webmention')
@ -558,9 +561,9 @@ def webmention_task():
domain = util.domain_from_link(source, minimize=False)
logger.info(f'webmention from {domain}')
g.user = Web.get_by_id(domain)
logger.info(f'User: {g.user.key}')
if not g.user:
user = Web.get_by_id(domain)
logger.info(f'User: {user.key}')
if not user:
error(f'No user found for domain {domain}', status=304)
# fetch source page
@ -585,7 +588,7 @@ def webmention_task():
'id': id,
'objectType': 'activity',
'verb': 'delete',
'actor': g.user.web_url(),
'actor': user.web_url(),
'object': source,
})
@ -595,27 +598,27 @@ def webmention_task():
authors = obj.mf2['properties'].setdefault('author', [])
author_urls = microformats2.get_string_urls(authors)
if not author_urls:
authors.append(g.user.web_url())
elif not g.user.is_web_url(author_urls[0]):
logger.info(f'Overriding author {author_urls[0]} with {g.user.web_url()}')
authors.append(user.web_url())
elif not user.is_web_url(author_urls[0]):
logger.info(f'Overriding author {author_urls[0]} with {user.web_url()}')
if isinstance(authors[0], dict):
authors[0]['properties']['url'] = [g.user.web_url()]
authors[0]['properties']['url'] = [user.web_url()]
else:
authors[0] = g.user.web_url()
authors[0] = user.web_url()
# if source is home page, update Web user and send an actor Update to
# followers' instances
if g.user and (g.user.key.id() == obj.key.id()
or g.user.is_web_url(obj.key.id())):
if user and (user.key.id() == obj.key.id()
or user.is_web_url(obj.key.id())):
logger.info(f'Converted to AS1: {obj.type}: {json_dumps(obj.as1, indent=2)}')
obj.put()
g.user.obj = obj
g.user.put()
user.obj = obj
user.put()
logger.info('Wrapping in Update for home page user profile')
actor_as1 = {
**obj.as1,
'id': g.user.web_url(),
'id': user.web_url(),
'updated': util.now().isoformat(),
}
id = common.host_url(f'{obj.key.id()}#update-{util.now().isoformat()}')
@ -623,7 +626,7 @@ def webmention_task():
'objectType': 'activity',
'verb': 'update',
'id': id,
'actor': g.user.web_url(),
'actor': user.web_url(),
'object': actor_as1,
})