portal: find end of redirect chain for origins

This commit is contained in:
Iain Learmonth 2022-08-10 16:50:50 +01:00
parent 82225d419d
commit 87ec0a4285

View file

@ -1,6 +1,8 @@
import urllib.parse
from datetime import datetime
from typing import Optional, List
import requests
from flask import flash, redirect, url_for, render_template, Response, Blueprint
from flask.typing import ResponseReturnValue
from flask_wtf import FlaskForm
@ -35,6 +37,12 @@ class EditOriginForm(FlaskForm): # type: ignore
submit = SubmitField('Save Changes')
def final_domain_name(domain_name) -> str:
session = requests.Session()
r = session.get(f"https://{domain_name}/", allow_redirects=True, timeout=10)
return urllib.parse.urlparse(r.url).netloc
@bp.route("/new", methods=['GET', 'POST'])
@bp.route("/new/<group_id>", methods=['GET', 'POST'])
def origin_new(group_id: Optional[int] = None) -> ResponseReturnValue:
@ -43,7 +51,7 @@ def origin_new(group_id: Optional[int] = None) -> ResponseReturnValue:
if form.validate_on_submit():
origin = Origin()
origin.group_id = form.group.data
origin.domain_name = form.domain_name.data
origin.domain_name = final_domain_name(form.domain_name.data)
origin.description = form.description.data
origin.auto_rotation = form.auto_rotate.data
origin.smart = form.smart_proxy.data