def post(self): form = RegisterForm() if form.validate_on_submit(): email = form.email.data username = form.username.data password = form.password.data if User.query.filter_by(email=email).exists(): msg = _('The email has been registered') return HTTPResponse(HTTPResponse.HTTP_CODE_PARA_ERROR, message=msg).to_response() if User.query.filter_by(username=username).exists(): msg = _('The username has been registered') return HTTPResponse(HTTPResponse.HTTP_CODE_PARA_ERROR, message=msg).to_response() user = User(username=username, email=email) user.set_password(password) user.save() login(user, True) self.register_email(user) flash(_('An email has been sent to your.Please receive')) return HTTPResponse(HTTPResponse.NORMAL_STATUS).to_response() else: if form.errors: return return_errors(form) return render_template('auth/register.html', form=form)
def get(self, token): user = User.check_email_token(token) if not user: msg = _('The confirm link has been out of time.' 'Please confirm your email again') flash(msg) return redirect('/') if user.is_confirmed: flash(_('The email has been confirmed. Please login.')) return redirect('auth.login') user.is_confirmed = True user.save() flash('You have confirmed your account. Thanks!') return redirect('/')
def send_email(self, user): token = user.email_token confirm_url = url_for('auth.confirm_token', token=token, _external=True) html = render_template('templet/email.html', confirm_url=confirm_url) subject = _("Please confirm your email") user.send_email(html=html, subject=subject)
def post(self): if current_user.is_confirmed: return HTTPResponse(HTTPResponse.USER_IS_CONFIRMED).to_response() self.send_email(current_user) return HTTPResponse( HTTPResponse.NORMAL_STATUS, description=_('An email has been sent to your.Please receive' )).to_response()
class ForgetForm(Form): email = StringField(_('Register Email:'), [DataRequired(), Email()]) captcha = StringField( _('Captcha:'), [DataRequired(), Length(min=4, max=4)]) def validate(self): rv = Form.validate(self) if not rv: return False captcha = session['captcha'] captcha_data = self.captcha.data if captcha_data.lower() != captcha.lower(): self.captcha.errors.append(_('The captcha is error')) return False return True
class BaseForm(Form): username = StringField( _('Username:'******'Password:'******'Captcha:'), [DataRequired(), Length(min=4, max=4)]) def validate(self): rv = Form.validate(self) if not rv: return False captcha = session['captcha'] captcha_data = self.captcha.data if captcha_data.lower() != captcha.lower(): self.captcha.errors.append(_('The captcha is error')) return False return True
def post(self): form = ForgetForm() if form.validate_on_submit(): email = form.email.data user = User.query.filter_by(email=email).first() if not user: msg = _('The email is error') return HTTPResponse(HTTPResponse.HTTP_CODE_PARA_ERROR, message=msg).to_response() password = ''.join(sample(ascii_letters + digits, 8)) user.set_password(password) user.save() self.send_email(user, password) flash( _('An email has been sent to you.' 'Please receive and update your password in time')) return HTTPResponse(HTTPResponse.NORMAL_STATUS).to_response() else: if form.errors: return return_errors(form) return render_template('auth/forget.html', form=form)
def validate(self): rv = Form.validate(self) if not rv: return False captcha = session['captcha'] captcha_data = self.captcha.data if captcha_data.lower() != captcha.lower(): self.captcha.errors.append(_('The captcha is error')) return False return True
def post(self): form = LoginForm() if form.validate_on_submit(): username = form.username.data password = form.password.data remember = True if request.json.get('remember') else False user = User.query.filter_by(username=username).first() if user and user.check_password(password): login(user, remember) return HTTPResponse(HTTPResponse.NORMAL_STATUS).to_response() msg = _('Username or Password Error') return HTTPResponse(HTTPResponse.HTTP_CODE_PARA_ERROR, message=msg).to_response() else: if form.errors: return return_errors(form) return render_template('auth/login.html', form=form)
def decorator(*args, **kwargs): if current_user.is_authenticated: flash(_("You have logined in ,needn't login again")) return redirect('/') return func(*args, **kwargs)
class LoginForm(BaseForm): remember = BooleanField(_('Remember me'), default=False)
class RegisterForm(BaseForm): email = StringField(_('Email:'), [DataRequired(), Email()])