def login(): error = None form = LoginForm() if form.validate_on_submit() and request.method == "POST": validate_code = session['validate_code'] validate = form.code.data if validate.lower() != validate_code.lower(): return jsonify(judge=False, error=u'验证码错误') else: name = form.name.data passwd = form.passwd.data remember = request.get_json()["remember"] user = User.load_by_name(name) if user and User.check_password(user.passwd, passwd): if remember: session.permanent = True login_user(user, remember=remember) identity_changed.send(current_app._get_current_object(), identity=Identity(user.id)) flash(u'你已成功登陆') return jsonify(judge=True, error=error) else: error = u'用户名或密码错误' return jsonify(judge=False, error=error) else: if form.errors: return return_errors(form) else: pass return render_template('auth/login.html', form=form, error=error)
def register(): error = None form = RegisterForm() if form.validate_on_submit() and request.method == "POST": validate_code = session['validate_code'] validate = form.code.data if validate.lower() != validate_code.lower(): return jsonify(judge=False, error=_('The validate code is error')) else: useremail = User.load_by_email(form.email.data) username = User.load_by_name(form.name.data) if username is not None: error = _('The name has been registered') return jsonify(judge=False, error=error) elif useremail is not None: error = _('The email has been registered') return jsonify(judge=False, error=error) else: account = User() account.name=form.name.data, account.email=form.email.data, account.passwd=form.passwd.data, account.roles='visitor' account.registered_time = datetime.now() '''邮箱验证''' token = email_token(account.email) confirm_url = url_for('auth.confirm', token=token, _external=True) html = render_template('templet/email.html', confirm_url=confirm_url) subject = _("Please confirm your email") # email_send(account.email, html, subject) account.send_email_time = datetime.now() db.session.add(account) db.session.commit() login_user(account) identity_changed.send(current_app._get_current_object(), identity=Identity(account.id)) flash(_('An email has been sent to your.Please receive')) return jsonify(judge=True, error=error) else: if form.errors: return return_errors(form) else: pass return render_template('auth/register.html', form=form)
def user_loader_from_request(request): from maple.user.models import User token = request.args.get('token') if token is not None: user = User.check_token(token) if user: return user
def load_token(token): max_age = app.config["REMEMBER_COOKIE_DURATION"].total_seconds() data = login_serializer.loads(token, max_age=max_age) user = User.load_by_name(data[0]) if user and data[1] == user.password: return user return None
def collect(): if request.method == "POST": qid = request.values.get('qid') collect = Collector.load(qid, current_user.id) if collect is not None: db.session.delete(collect) db.session.commit() RedisData.set_collect(current_user, -1) return jsonify(judge=True) else: collect = Collector() collect.question_id = qid collect.user_id = current_user.id db.session.add(collect) db.session.commit() user = User.load_by_id(collect.user_id) if current_user.name != user.name: message = Message(send_user=current_user.name, rece_user=user.name, kind='collect', content='a') message.question_id = qid db.session.add(message) db.session.commit() RedisData.set_notice(user, 1) else: pass RedisData.set_collect(current_user, 1) return jsonify(judge=True) else: abort(404)
def love(): '''点赞''' if request.method == "POST": rid = request.values.get('rid') print(rid) love = Lover.load(rid, current_user.id) if love is not None: db.session.delete(love) db.session.commit() RedisData.set_love(current_user, -1) flash('成功取消赞') return jsonify(judge=True) else: love = Lover() love.reply_id = rid love.user_id = current_user.id db.session.add(love) db.session.commit() user = User.load_by_id(love.user_id) if current_user.name != user.name: message = Message(send_user=current_user.name, rece_user=user.name, kind='love', content='a') message.reply_id = rid db.session.add(message) db.session.commit() RedisData.set_notice(user, 1) else: pass RedisData.set_love(current_user, 1) flash('赞成功') return jsonify(judge=True) else: abort(404)
def setting(): '''用户设置''' error = None form = SettingForm() passwd_form = NewPasswdForm() mode = request.args.get('mode') if mode == 'setting': if form.validate_on_submit() and request.method == "POST": introduce = form.introduce.data school = form.school.data word = form.word.data current_user.infor.introduce = introduce current_user.infor.school = school current_user.infor.word = word db.session.commit() flash('资料更新成功') return jsonify(judge=True, error=error) else: if form.errors: return return_errors(form) else: pass return redirect(url_for('user.setting')) elif mode == 'password': if passwd_form.validate_on_submit() and request.method == "POST": user = User.query.filter_by(name=current_user.name).first() passwd = passwd_form.passwd.data rpasswd = passwd_form.rpasswd.data if not User.check_password(user.passwd, passwd): error = u'密码错误' return jsonify(judge=False, error=error) else: user.passwd = generate_password_hash(rpasswd) db.session.commit() logout_user() session.clear() for key in ('identity.id', 'identity.auth_type'): session.pop(key, None) identity_changed.send(current_app._get_current_object(), identity=AnonymousIdentity()) flash('密码修改成功,请重新登陆') return jsonify(judge=True, error=error) else: if passwd_form.passwd.errors: error = passwd_form.passwd.errors return jsonify(judge=False, error=error) elif passwd_form.npasswd.errors: error = passwd_form.npasswd.errors return jsonify(judge=False, error=error) else: return redirect(url_for('user.setting')) else: form.school.data = current_user.infor.school form.word.data = current_user.infor.word form.introduce.data = current_user.infor.introduce return render_template('user/user_settings.html', category=category, passwd_form=passwd_form, form=form)
def create_user(username, email, password): if username == 'admin': username = input('Username(default admin):') if email is None: email = input('Email:') if password is None: password = getpass('Password:'******'super' user.registered_time = datetime.utcnow() user.confirmed_time = datetime.utcnow() db.session.add(user) db.session.commit()
def register(): error = None form = RegisterForm() if form.validate_on_submit() and request.method == "POST": validate_code = session['validate_code'] validate = form.code.data if validate.lower() != validate_code.lower(): return jsonify(judge=False, error=_('The validate code is error')) else: useremail = User.load_by_email(form.email.data) username = User.load_by_name(form.name.data) if username is not None: error = _('The name has been registered') return jsonify(judge=False, error=error) elif useremail is not None: error = _('The email has been registered') return jsonify(judge=False, error=error) else: account = User() account.name = form.name.data, account.email = form.email.data, account.passwd = form.passwd.data, account.roles = 'visitor' account.registered_time = datetime.now() '''邮箱验证''' token = email_token(account.email) confirm_url = url_for('auth.confirm', token=token, _external=True) html = render_template('templet/email.html', confirm_url=confirm_url) subject = _("Please confirm your email") # email_send(account.email, html, subject) account.send_email_time = datetime.now() db.session.add(account) db.session.commit() login_user(account) identity_changed.send(current_app._get_current_object(), identity=Identity(account.id)) flash(_('An email has been sent to your.Please receive')) return jsonify(judge=True, error=error) else: if form.errors: return return_errors(form) else: pass return render_template('auth/register.html', form=form)
def validate(self): rv = BaseForm.validate(self) if not rv: return False user = User.query.filter_by(name=self.name.data).first() print(user) if user is None: self.name.errors.append('Unknown username') return False a = User() if not user.check_password(self.passwd.data): self.passwd.errors.append('Invalid password') return False self.user = user return True
def create_user(username, email, password): if username == 'admin': username = input('Username(default admin):') if email is None: email = input('Email:') if password is None: password = getpass('Password:'******'super').first() if role is None: role = Role() role.rolename = 'super' user.roles.append(role) db.session.add(user) db.session.commit()
def create_model(self, form): form.password.data = User.set_password(form.password.data) super(UserModelView, self).create_model(form)
def register(): error = None form = RegisterForm() if form.validate_on_submit() and request.method == "POST": validate_code = session['validate_code'] validate = form.code.data if validate.lower() != validate_code.lower(): return jsonify(judge=False, error=u'验证码错误') else: useremail = User.load_by_email(form.email.data) username = User.load_by_name(form.name.data) if username is not None: error = u'用户名已存在' return jsonify(judge=False, error=error) elif useremail is not None: error = u'邮箱已被注册' return jsonify(judge=False, error=error) else: account = User(name=form.name.data, email=form.email.data, passwd=form.passwd.data) userinfor = UserInfor() usersetting = UserSetting() roles = Role(name='unconfirmed', rank=1) account.infor = userinfor account.setting = usersetting account.roles.append(roles) '''邮箱验证''' token = email_token(account.email) confirm_url = url_for('auth.confirm', token=token, _external=True) html = render_template('templet/email.html', confirm_url=confirm_url) subject = "请验证你的邮箱" email_send(account.email, html, subject) db.session.add(account) db.session.commit() '''记录用户数''' redis_data.hincrby('user', 'all:count', 1) login_user(account) identity_changed.send(current_app._get_current_object(), identity=Identity(account.id)) '''发送邮件时间''' from time import time time = int(time()) + 28800 user = '******' % str(current_user.id) redis_data.hset(user, 'send_email_time', time) flash(u'一封验证邮件已发往你的邮箱,請查收.') return jsonify(judge=True, error=error) else: if form.errors: return return_errors(form) else: pass if request.args.get('mode') == 'agree': return render_template('auth/register.html', form=form, error=error) else: return render_template('auth/register_service.html', form=form, error=error)
def user_loader_from_request(request): token = request.args.get('token') if token is not None: user = User.check_token(token) if user: return user