kopia lustrzana https://github.com/snarfed/bridgy-fed
/web-site bug fix, handle opted out users
fixes https://console.cloud.google.com/errors/detail/CN7a9KGAicelyAE;time=P30D?project=bridgy-federatedpull/799/head
rodzic
2c938cd287
commit
4e5021e2b0
|
@ -2394,6 +2394,16 @@ http://this/404s
|
|||
get_flashed_messages())
|
||||
self.assertEqual(1, Web.query().count())
|
||||
|
||||
def test_check_web_site_opted_out(self, _, __):
|
||||
self.user.manual_opt_out = True
|
||||
self.user.put()
|
||||
|
||||
got = self.post('/web-site', data={'url': 'user.com'})
|
||||
self.assert_equals(400, got.status_code)
|
||||
self.assertEqual(['user.com is not a valid or supported web site'],
|
||||
get_flashed_messages())
|
||||
self.assertEqual(1, Web.query().count())
|
||||
|
||||
def test_check_webfinger_redirects_then_fails(self, mock_get, _):
|
||||
redir = 'http://localhost/.well-known/webfinger?resource=acct:orig@orig'
|
||||
mock_get.side_effect = (
|
||||
|
|
5
web.py
5
web.py
|
@ -545,6 +545,8 @@ def enter_web_site():
|
|||
|
||||
@app.post('/web-site')
|
||||
def check_web_site():
|
||||
logger.info(f'Params: {list(request.form.items())}')
|
||||
|
||||
url = request.values['url']
|
||||
# this normalizes and lower cases domain
|
||||
domain = util.domain_from_link(url, minimize=False)
|
||||
|
@ -554,6 +556,9 @@ def check_web_site():
|
|||
|
||||
try:
|
||||
user = Web.get_or_create(domain, direct=True)
|
||||
if not user: # opted out
|
||||
flash(f'{url} is not a valid or supported web site')
|
||||
return render_template('enter_web_site.html'), 400
|
||||
user = user.verify()
|
||||
except BaseException as e:
|
||||
code, body = util.interpret_http_exception(e)
|
||||
|
|
Ładowanie…
Reference in New Issue