from flask_login import current_user from wtforms.validators import ValidationError from app.models.user import Member from app.models.trophy import Title from werkzeug.exceptions import NotFound from app.utils.validators.file import * from app.utils.validators.name import * from app.utils.validators.password import * def email(form, email): member = Member.query.filter_by(email=email.data).first() if member is not None: raise ValidationError('Adresse email déjà utilisée.') def id_exists(object): """Check if an id exists in a table""" def _id_exists(form, id): try: id = int(id.data) except ValueError: raise ValidationError('L\'id n\'est pas un entier valide') r = object.query.filter_by(id=id) if not r: raise ValidationError('L\'id n\'existe pas dans la BDD') return _id_exists def css(form, css): """Check if input is valid and sane CSS""" pass def own_title(form, title): # Everyone can use "Member" if title.data == -1: return True try: t = Title.query.get_or_404(title.data) except NotFound: return False except ValueError: return False if t in current_user.trophies: return True else: return False