def register(): mobile_form = MobileRegistrationForm() detail_form = RegistrationDetailForm() if VENDOR_REGISTER_STEP_DONE in session: if session[VENDOR_REGISTER_STEP_DONE] == 0: if request.method == 'POST': if mobile_form.validate(): session[VENDOR_REGISTER_MOBILE] = mobile_form.mobile.data session[VENDOR_REGISTER_STEP_DONE] = 1 return jsonify({ACCESS_GRANTED: True}) return jsonify({ACCESS_GRANTED: False, 'message': mobile_form.error2str()}) else: return render_template('vendor/register.html', form=mobile_form) elif session[VENDOR_REGISTER_STEP_DONE] == 1: if request.method == 'POST': if detail_form.validate(): vendor = detail_form.add_vendor(session[VENDOR_REGISTER_MOBILE]) vendor.push_confirm_reminds(VENDOR_REMINDS_PENDING) login_user(vendor) identity_changed.send(current_app._get_current_object(), identity=Identity(vendor.get_id())) send_email(current_app.config['ADMIN_EMAILS'], ADMIN_REMINDS_SUBJECT, ADMIN_EMAIL_REMINDS) session.pop(VENDOR_REGISTER_MOBILE) session.pop(VENDOR_REGISTER_STEP_DONE) return jsonify({ACCESS_GRANTED: True}) return jsonify({ACCESS_GRANTED: False, 'message': detail_form.error2str()}) else: return render_template('vendor/register_next.html', form=detail_form) session[VENDOR_REGISTER_STEP_DONE] = 0 return render_template('vendor/register.html', form=mobile_form)
def send_email(self): if (self.email_type == VENDOR_EMAIL_CONFIRM or self.email_type == USER_EMAIL_CONFIRM) \ and not self.email_confirmed: token = md5_with_time_salt(self.role.data, self.id.data) redis_set(CONFIRM_EMAIL, token, {'role': self.role.data, 'id': self.id.data, 'email': self.email.data, 'action': 'confirm'}, serialize=True) url = url_for('service.verify', token=token, _external=True) send_email(self.email.data, EMAIL_CONFIRM_SUBJECT, self.email_type, url=url)
def add_feedback(self): if current_user.is_authenticated and current_user.id_prefix == 'u' and User.query.get(current_user.id): user_id = current_user.id mobile = current_user.mobile else: user_id = 0 mobile = '' feedback = Feedback(feedback=self.feedback.data, contact=self.contact.data, user_id=user_id) db.session.add(feedback) db.session.commit() send_email(current_app.config['FEEDBACK_EMAILS'], '用户反馈', USER_FEEDBACK, feedback=feedback.feedback, contact=feedback.contact, mobile=mobile)
def send_email(self): if self.email_type == USER_RESET_PASSWORD: token = md5_with_time_salt(self.email.data) redis_set(CONFIRM_EMAIL, token, { 'email': self.email.data, 'action': 'reset_password' }, serialize=True) url = url_for('service.verify', token=token, _external=True) send_email(self.email.data, EMAIL_CONFIRM_SUBJECT, self.email_type, url=url)
def send_email(self): if (self.email_type == VENDOR_EMAIL_CONFIRM or self.email_type == USER_EMAIL_CONFIRM) \ and not self.email_confirmed: token = md5_with_time_salt(self.role.data, self.id.data) redis_set(CONFIRM_EMAIL, token, { 'role': self.role.data, 'id': self.id.data, 'email': self.email.data, 'action': 'confirm' }, serialize=True) url = url_for('service.verify', token=token, _external=True) send_email(self.email.data, EMAIL_CONFIRM_SUBJECT, self.email_type, url=url)
def add_feedback(self): if current_user.is_authenticated and current_user.id_prefix == 'u' and User.query.get( current_user.id): user_id = current_user.id mobile = current_user.mobile else: user_id = 0 mobile = '' feedback = Feedback(feedback=self.feedback.data, contact=self.contact.data, user_id=user_id) db.session.add(feedback) db.session.commit() send_email(current_app.config['FEEDBACK_EMAILS'], '用户反馈', USER_FEEDBACK, feedback=feedback.feedback, contact=feedback.contact, mobile=mobile)
def update(self): if self.type == USER_USERNAME_SETTING: if self.username.data != current_user.username and current_user.username_revisable: current_user.username = self.username.data current_user.username_revisable = False elif self.type == USER_PASSWORD_SETTING: current_user.password = self.password.data db.session.commit() logout_user() identity_changed.send(current_app._get_current_object(), identity=AnonymousIdentity()) return else: # email current_user.email = self.email.data current_user.email_confirmed = False token = md5_with_time_salt(self.email.data) redis_set(CONFIRM_EMAIL, token, {'email': self.email.data, 'role': 'user', 'action': 'confirm', 'id': current_user.id}, serialize=True) url = url_for('service.verify', token=token, _external=True) send_email(self.email.data, EMAIL_CONFIRM_SUBJECT, USER_EMAIL_CONFIRM, url=url) db.session.commit()
def register(): mobile_form = MobileRegistrationForm() detail_form = RegistrationDetailForm() if VENDOR_REGISTER_STEP_DONE in session: if session[VENDOR_REGISTER_STEP_DONE] == 0: if request.method == 'POST': if mobile_form.validate(): session[VENDOR_REGISTER_MOBILE] = mobile_form.mobile.data session[VENDOR_REGISTER_STEP_DONE] = 1 return jsonify({ACCESS_GRANTED: True}) return jsonify({ ACCESS_GRANTED: False, 'message': mobile_form.error2str() }) else: return render_template('vendor/register.html', form=mobile_form) elif session[VENDOR_REGISTER_STEP_DONE] == 1: if request.method == 'POST': if detail_form.validate(): vendor = detail_form.add_vendor( session[VENDOR_REGISTER_MOBILE]) vendor.push_confirm_reminds(VENDOR_REMINDS_PENDING) login_user(vendor) identity_changed.send(current_app._get_current_object(), identity=Identity(vendor.get_id())) send_email(current_app.config['ADMIN_EMAILS'], ADMIN_REMINDS_SUBJECT, ADMIN_EMAIL_REMINDS) session.pop(VENDOR_REGISTER_MOBILE) session.pop(VENDOR_REGISTER_STEP_DONE) return jsonify({ACCESS_GRANTED: True}) return jsonify({ ACCESS_GRANTED: False, 'message': detail_form.error2str() }) else: return render_template('vendor/register_next.html', form=detail_form) session[VENDOR_REGISTER_STEP_DONE] = 0 return render_template('vendor/register.html', form=mobile_form)
def send_email(self): if self.email_type == USER_RESET_PASSWORD: token = md5_with_time_salt(self.email.data) redis_set(CONFIRM_EMAIL, token, {'email': self.email.data, 'action': 'reset_password'}, serialize=True) url = url_for('service.verify', token=token, _external=True) send_email(self.email.data, EMAIL_CONFIRM_SUBJECT, self.email_type, url=url)