# Copyright (C) 2020-2021 Soleta Networks # # This program is free software: you can redistribute it and/or modify it under # the terms of the GNU Affero General Public License as published by the # Free Software Foundation; either version 3 of the License, or # (at your option) any later version. from wtforms import ( Form, SubmitField, HiddenField, SelectField, BooleanField, IntegerField, StringField, RadioField, PasswordField, SelectMultipleField, widgets ) from wtforms.validators import InputRequired, Optional from flask_wtf import FlaskForm from flask_babel import lazy_gettext as _l from flask_babel import _ class LoginForm(FlaskForm): user = StringField( label=_l('User'), validators=[InputRequired()] ) pwd = PasswordField( label=_l('Password'), validators=[InputRequired()] ) submit_btn = SubmitField( label=_l('Login') ) class UserForm(FlaskForm): username = StringField( label=_l('Username'), validators=[InputRequired()] ) pwd = PasswordField( label=_l('Password'), validators=[InputRequired()], ) pwd_confirm = PasswordField( label=_l('Repeat password'), validators=[InputRequired()], ) admin = BooleanField( label=_l('Administrator'), ) scopes = SelectMultipleField( label=_l('Allowed scopes'), description=_l('No scope selection gives full access'), option_widget=widgets.CheckboxInput(), widget=widgets.ListWidget(prefix_label=False) ) submit_btn = SubmitField( label=_l('Submit') ) class EditUserForm(UserForm): def __init__(self, *args, **kwargs): super(EditUserForm, self).__init__(*args, **kwargs) self.pwd.validators = [Optional()] self.pwd_confirm.validators = [Optional()] class DeleteUserForm(FlaskForm): username = HiddenField( validators=[InputRequired()] ) submit_btn = SubmitField( label=_l('Submit') )