# SPDX-FileCopyrightText: 2026 Dennis Fink # # SPDX-License-Identifier: BSD-3-Clause import re from flask_wtf import FlaskForm from wtforms import PasswordField, StringField, SubmitField from wtforms.validators import URL, InputRequired, Regexp from .validators import AllowedHostname, NotEqualTo, PublicURL class LoginForm(FlaskForm): username = StringField("Username", validators=[InputRequired()]) password = PasswordField("Password", validators=[InputRequired()]) submit = SubmitField("Sign In") class EndpointForm(FlaskForm): source = StringField( "source", validators=[ InputRequired(), URL(), Regexp( "^https?://.*", flags=re.IGNORECASE, message="source must begin with http or https", ), NotEqualTo("target"), PublicURL(), ], ) target = StringField( "target", validators=[ InputRequired(), URL(), Regexp( "^https?://.*", flags=re.IGNORECASE, message="target must begin with http or https", ), AllowedHostname(), ], ) class AdminActionForm(FlaskForm): submit = SubmitField("Confirm")