Пример #1
0
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)
Пример #2
0
 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)
Пример #3
0
 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)
Пример #4
0
 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)
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
 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()
Пример #8
0
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)
Пример #9
0
 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)