示例#1
0
def reset_email():
    if request.method == "POST":
        form = EmailForm(request.form)
        if form.validate():
            ul = serv.login(g.user['email'], form.password.data)
            if ul:
                #TODO:发送确认邮件
                try:
                    uri = serv.send_lock_request("user.confirm_email", ul.id)
                    up = g.db.query(UserProfile).filter(
                        UserProfile.user_id == ul.id).one()
                    up.email = form.email.data
                    g.db.flush()
                    g.db.commit()
                    success = u"确认邮箱的邮件已经发出,请登录邮箱点击确认链接,然后才能使用新邮箱登陆"
                    msg = Message(u"登陆邮箱变更确认邮件",
                                  sender="*****@*****.**",
                                  recipients=["*****@*****.**"])
                    msg.html = "点击下面链接确认登陆邮件变更,点击后用新邮箱登陆爱普云平台<br/><a href=\"http://%s%s\">%s</a>" % (
                        settings.SERVER, uri, uri)
                    g.mail.send(msg)
                except Exception, e:
                    g.db.rollback()
                    log.error(print_debug(e))
                    errors = [u"未知异常"]
            else:
                errors = [u"登陆密码输入不正确"]
        else:
            errors = [v[0] for k, v in form.errors.iteritems()]
示例#2
0
def send_message():
    form = EmailForm(request.form)
    if form.validate():
        app.config.from_object('email_conf.Config')
        mail = Mail(app)
        msg = Message(sender=current_app.config['MAIL_USERNAME'],
                      recipients=[current_app.config['MAIL_USERNAME']],
                      subject=f'message from {form.name.data} through website')
        mail.body = form.message.data
        msg.html = f'{form.email_field.data}<br>{mail.body}'
        mail.send(msg)
        flash('Message sent', 'success')
        return render_template('home.html',
                               form=form,
                               mail=current_app.config['MAIL_USERNAME'],
                               nnet_library=nnet_library,
                               library_link=library_links[nnet_library],
                               name=model_name,
                               link=model_links[model_name])

    flash('There was an error sending the message', 'error')
    return render_template('home.html',
                           form=form,
                           mail=current_app.config['MAIL_USERNAME'],
                           nnet_library=nnet_library,
                           library_link=library_links[nnet_library],
                           name=model_name,
                           link=model_links[model_name])
示例#3
0
def reset():
    form = EmailForm()
    if request.method == 'POST':
        if form.validate() == False:
            return render_template('reset.html', form=form)
        else:
            user = User.query.filter_by(
                email=form.email.data.lower()).first_or_404()
            if user:
                subject = "Password reset requested"
                token = security.ts.dumps(user.email, salt='recover-key')

                recover_url = url_for('reset_with_token',
                                      token=token,
                                      _external=True)

                html = "Click <a href={}> here </a> to change your password".format(
                    recover_url)
                security.send_email(subject, user.firstname, user.email, html)
                signup_form = SignupForm()
                signin_form = SigninForm()
                message = "Reset email sent to {}".format(user.email)
                return render_template('home.html',
                                       signup_form=signup_form,
                                       signin_form=signin_form,
                                       message=message)
            else:
                return "That user does not exist"

    elif request.method == 'GET':
        return render_template('reset.html', form=form)
示例#4
0
def reset_email():
    if request.method == "POST":
        form = EmailForm(request.form)
        if form.validate():
            ul = serv.login(g.user['email'],form.password.data)
            if ul:
                #TODO:发送确认邮件
                try:
                    uri = serv.send_lock_request("user.confirm_email", ul.id)
                    up = g.db.query(UserProfile).filter(UserProfile.user_id==ul.id).one()
                    up.email = form.email.data
                    g.db.flush()
                    g.db.commit()
                    success = u"确认邮箱的邮件已经发出,请登录邮箱点击确认链接,然后才能使用新邮箱登陆"
                    msg = Message(u"登陆邮箱变更确认邮件", sender="*****@*****.**", recipients=["*****@*****.**"])
                    msg.html = "点击下面链接确认登陆邮件变更,点击后用新邮箱登陆爱普云平台<br/><a href=\"http://%s%s\">%s</a>"%(settings.SERVER, uri, uri)
                    g.mail.send(msg)
                except Exception, e:
                    g.db.rollback()
                    log.error(print_debug(e))
                    errors = [u"未知异常"]
            else:
                errors = [u"登陆密码输入不正确"]
        else:
            errors = [v[0] for k, v in form.errors.iteritems()]
示例#5
0
文件: views.py 项目: bobais/ec
def save_email():
    form = EmailForm(request.form)
    if form.validate():
        db = get_db()
        db.execute('''INSERT INTO emails (email, registered)
        VALUES (?, ?)''', (request.form.get('email'), datetime.utcnow().isoformat()))
        db.commit()

        return render_template('email.html', email=Markup.escape(form.email.data))
    else:
        return redirect("/")
示例#6
0
文件: api.py 项目: dhilipsiva/moback
def forgot_password():
    statsd.increment('api_calls.forgot_password')
    if request.method == 'POST':
        logger.info(request.form)
        form = EmailForm(request.form)
        if not form.validate():
            msg = {
                'success': False,
                'msg': form.errors, }
            return jsonify(msg)
        if secret_key != base64.b64decode(form.sig.data):
            msg = {
                'success': False,
                'msg': 'invalid signature'}
            return jsonify(msg)
        u = session.query(Person).\
            filter(Person.email == form.email.data).\
            first()
        if not u:
            msg = {
                'success': False,
                'msg': 'Email not registered!'}
            return jsonify(msg)
        m = Message(
            "Reset Password",
            recipients=[form.email.data])
        content = (
            'Click <a href="http://' +
            request.headers['Host'] + '/forgot_password?' +
            'key=' + urllib.quote(u.pw_hash) + '&email=' +
            urllib.quote(form.email.data) + '">HERE</a>' +
            ' to reset your password')
        m.html = content
        mail.send(m)
        msg = {
            'success': True,
            'msg': 'Mail Sent!'}
        return jsonify(msg)

    logger.info(request.args)
    key = urllib.unquote(request.args['key'])
    email = urllib.unquote(request.args['email'])
    u = session.query(Person).\
        filter(Person.email == email).first()
    if u and key == u.pw_hash:
        response = redirect(url_for('reset_page'))
        response.set_cookie('email', value=email)
        response.set_cookie('key', value=urllib.quote(key))
        return response
    return 'Invalid key!'
示例#7
0
文件: views.py 项目: bobais/ec
def save_email():
    form = EmailForm(request.form)
    if form.validate():
        db = get_db()
        db.execute(
            '''INSERT INTO emails (email, registered)
        VALUES (?, ?)''',
            (request.form.get('email'), datetime.utcnow().isoformat()))
        db.commit()

        return render_template('email.html',
                               email=Markup.escape(form.email.data))
    else:
        return redirect("/")
示例#8
0
def send_message():
    form = EmailForm(request.form)
    if form.validate():
        app.config.from_object('email_conf.Config')
        mail = Mail(app)
        msg = Message(sender=current_app.config['MAIL_USERNAME'],
                      recipients=[current_app.config['MAIL_USERNAME']],
                      subject=f'message from {form.name.data} through website')
        mail.body = form.message.data
        msg.html = f'{form.email.data}<br>{mail.body}'
        mail.send(msg)
        return jsonify({'status': 'success'})
    print('error while sending email')
    return jsonify({'status': 'error'})
示例#9
0
def new_email(keyurl):
    """
    """
    key = ndb.Key(urlsafe=keyurl)
    form = EmailForm(request.form)
    if request.method == 'POST' and form.validate():
        email = EmailModel(
            enterprise = key,
            email = form.email.data
        )
        try:
            email.put()
            return redirect(url_for('admin.edit_enterprise', keyurl=keyurl))
        except CapabilityDisabledError:
            flash('save error', 'error')
    return render_template('admin/new_email.html', form=form, keyurl=keyurl)
示例#10
0
def edit_email(keyurl):
    email = ndb.Key(urlsafe=keyurl).get()
    if not email:
        flash('no such email', 'error')
        return redirect(url_for('admin.enterprises'))
    form = EmailForm(request.form)
    if request.method == 'GET':
        form.email.data = email.email

    if request.method == 'POST' and form.validate():
        email.email = form.email.data
        try:
            email.put()
            return redirect(url_for('admin.edit_enterprise', keyurl=email.enterprise))
        except CapabilityDisabledError:
            flash('save error', 'error')
    return render_template('admin/edit_email.html', form=form, keyurl=keyurl)