Files

46 lines
5.7 KiB
Python

from tools import *
from . import Lib
from . import UGMLib
class RegisterForm(flask_wtf.FlaskForm):
UserName = wtforms.StringField('昵称', validators=[wtforms.validators.DataRequired(message="对不起,您的昵称不应为空"),
wtforms.validators.Length(max=20, message="昵称长度不能超过20字")])
UserEmail = wtforms.StringField('邮箱', validators=[wtforms.validators.Optional(),
wtforms.validators.DataRequired(message="对不起,您的邮箱不应为空"),
wtforms.validators.Email(message="邮箱格式无效"),
wtforms.validators.Length(max=100, message="邮箱长度不能超过100字")])
UserPassWord = wtforms.PasswordField('密码', validators=[wtforms.validators.DataRequired(message="对不起,您的密码不应为空"),
wtforms.validators.Length(max=20, message="密码长度不能超过20字")])
UserPassWord2 = wtforms.PasswordField('确认密码', validators=[wtforms.validators.DataRequired(),
wtforms.validators.EqualTo('UserPassWord', message="两次密码不一致")])
UserConsent = wtforms.BooleanField('协议', validators=[wtforms.validators.InputRequired(message="您必须签署用户协议才能登录")])
def validate_UserName(self, field):
if not Lib.NonLegalChar(field.data):
raise wtforms.validators.ValidationError("该用户名称存在非法字符")
if UGMLib.UGM.GetUserDataByUserName(field.data):
raise wtforms.validators.ValidationError("该用户已存在,无法创建")
class LoginForm(flask_wtf.FlaskForm):
UserName = wtforms.StringField('用户名')
UserPassWord = wtforms.PasswordField('密码', validators=[wtforms.validators.DataRequired(message="对不起,您的密码不应为空")])
UserConsent = wtforms.BooleanField('用户协议', validators=[wtforms.validators.InputRequired(message="您必须签署用户协议才能登录")])
def validate(self, extra_validators=None):
if not super().validate(extra_validators):
return False
if not self.UserName.data:
self.UserName.errors.append("必须用户名")
return False
return True
class ChangePasswordForm(flask_wtf.FlaskForm):
UserOldPassWord = wtforms.PasswordField('Old Password', validators=[wtforms.validators.DataRequired(message="旧密码不能为空"),])
UserPassWord = wtforms.PasswordField('New Password', validators=[wtforms.validators.DataRequired(message="新密码不能为空"),
wtforms.validators.Length(min=8, max=20, message="密码应当大于等于8个字符小于等于20个字符")])
UserPassWord2 = wtforms.PasswordField('Confirm New Password', validators=[wtforms.validators.DataRequired(message="确认密码不能为空"),
wtforms.validators.EqualTo('UserPassWord', message="两次密码不相同")])
UserDefaultAvatar = b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\xc0\x00\x00\x00\xc0\x08\x03\x00\x00\x00e\x02\x9c5\x00\x00\x003PLTE\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xfa\xf0\xf0\xf0\xe0\xe0\xe0\xc8\xc8\xc8\xb8\xb8\xb8\xc0\xc0\xc0\x8f\x8f\x8f\x90\x90\x90\x98\x98\x98\xa0\xa0\xa0\xa8\xa8\xa8\xb0\xb0\xb0\xd0\xd0\xd0\xd8\xd8\xd8\xe8\xe8\xe8\x92\x11\xe9\x17\x00\x00\x00\x02tRNS\xfe\xfd?\xa0\x8f\xaa\x00\x00\x02\x97IDATx\x01\xed\xda\x07\x92\xad:\x0c\x84\xe1y\xc8\xa1G2\xe6\xec\x7f\xb5\xef\xe6\x9c\xa0N3rU\xff+\xe0#\x83\xf5\xb2\xad\xdd\x8b\x00\x02\x08 \x80\x00\x02\x08 \x80\x00\x02\x08 @\x8e\x04\x10@\x00\x01\x04\x10@\x00\x01\x04\x10@\x00\x01\x04\x10@\x00\x01\x04\xb0R[\x04\x00\xc4\xd8kY\x0c`\xc7p|\x97\xefs\x1d\x80U\xc7/\x8af,\x00\x7f\xf3?U-?\xe0\x08\xfc\xa1\x98\xc9\x01\xd6\xf1\x97\xbae\x06X\xe0\xaf\x85\xe5\x05X\x00|\x01\x0f`\x01\xf0\x05<\x80\x05\xc0\x17\xf0\x00\x16\x00_@\x04t\x9c\xa8\xe7\x03L\x9c\xea\xc8\x06\xb0\xc0\xa9\xc2\x92\x01*N\xd6s\x01\x0cgsK\x05h8]O\x05\x080\x0f\x01\x1f0q\xa1#\x11`\xc7\x85F"\x80\xe3Bni\x00\x05\x97*i\x00\x15\x97\xaai\x00;.\xd5\xd2\x00\x06.\x15i\x00\xb1:\x00\x17c\x02\x04\x10@\x171\x1f0\xd2\x00\x1a.\xb5\xebUB/s\x9f2\xc7\x85<\xd1\xf7\xc0\xe0^\x02|\xc0\x81\x0bM*\x80\x7f\x0eE\xaa\xbf\x12\x1d\xa7k\\\x00\xff\x10X*\xc0\xd6\t\xff\xb5\xf4s\x97y#\x9aZ\xe0\xd0\x12\x13\x7f\x91O\xcb\xac$A\x98F\r4\xec\xf1\x87f\xe0\x0f\xc5A\x1c\xb7\xe1\x1f\x04\xef\xb6\xc6\xc8Y\x0b\xf2\xe6\xf3\xa7\x16\xe7\xee\xf8.\x1f\x87-67Z\xea>\x02\x00"Z-\xa6\xc1W\x01R%\x80\x00\x02\x08Pz8\x9e\x94G+7\x03f\xe0\xc9\xc5\xbc\x11`\x03\x84\x86\xdd\x05\xb0\x00\xa5\xb0{\x00\x16\x00_@\x04\x0c\xd0\x1aw\x00&\x88\xcd\x1b\x00\x01b\xc1\x07\x14P+t@\x03\xb5N\x07\x04\xa8\x05\x1d\xe0\xa0\xe6t\x00\xc8\t \x80\x00\xba\x8d\xbe)`\xac\xfe$\xde\xe9\x80\xbe\xfa\xab\xc4\x01j\x07\x1d`\xa0ft\xc06\xf8\xd70\x17PW\xff"3\x10\xb3\xc5?\xea\xdbv\x07\xa0\x80\x96Q\x01\xfcC\xd0\xee\xfa3\xe7\xa0\xf4jT\x00\xffi\xdc\xef\xfb;\x1d \x14\x1b\x13\xc0?\x89\xc2n\x04l\x0f<\xbb\xd7\xc7\xbd+4\x93\xff\x0c\xe6\x01\x08\x82\xd7y\xff"\xdf\xe1xZ^\xdeb\x95\xd2\x82\x7f\xfdR\x01\x9b5<\xa5f\x1b\x0f\xc0_\xac\xf4\x83\xb9N\xcc?\x08\xdd6>\x80G\x18\xc6_\xa9\xe7\x11\xbc\x95$\xb3\x12v\xe5Z\x88n\x99\x86=J;e\xf0^\xf2M\xab<\xeap\xfcC>\xea#\xed\xb8M\xa9\xedO\n\x8fV\x1f\x0bL\xee\x96\xd9\xdb\x18\x11\x9f(\x1e1\xf6\xd6\xe7a\x1ax\x12@\x00\x01\x04\x10@\x00\x01\x04\x10@\x00\x01\x04\x10@\x00\x01\x04\x10@\x00\x01\x04\x10@\x00\x01\x04\x10\xe0\xcd\x13@\x00\x01\x16\xef\xbf\xff\x01\xf0\x16\xb7@\x05\x81\xe7\\\x00\x00\x00\x00IEND\xaeB`\x82'