Beispiel #1
0
def reset_password():
    form = PasswordResetForm()
    if form.validate_on_submit():
        if form.username.data:
            user = Users.query.filter_by(username=form.username.data).first()
        elif form.email.data:
            user = Users.query.filter_by(email=form.email.data).first()
        else:
            flash("Username or password doesn't exists")

        if user:
            if user.email:
                s = URLSafeSerializer('serliaizer_code')
                key = s.dumps([user.username, user.email])

            msg = Message("Password reset",
                          sender="your_id@your_host.com",
                          recipients=[user.email])
            msg.html = "<b>Click on this link to reset your password.</b> \
                        #<a href='http://127.0.0.1:5000/passwordreset/ \
                        " + key + "'>http://127.0.0.1:5000/passwordreset/ \
                        " + key + "</a>"

            send_async_email(msg)

            flash('Email sent to: ' + user.email)
            return redirect(url_for('reset_password'))
        else:
            flash('No such user')
            return redirect(url_for('reset_password'))
    flash(u'Enter your email or username')
    return render_template('reset_password.html', form=form)
Beispiel #2
0
def resetpassword():
    form = PasswordResetForm()
    if form.validate_on_submit():
        if form.username.data:
          user = Users.query.filter_by(username=form.username.data).first()
        elif form.email.data:
          user = Users.query.filter_by(email=form.email.data).first()
        else:
          flash("Username or password not in system")
          
        if user:
          if user.email:
            s = URLSafeSerializer('12fe454t')
            key = s.dumps([user.username, user.email])
            #s.loads('WzEsMiwzLDRd.wSPHqC0gR7VUqivlSukJ0IeTDgo')
            
            msg = Message("Password reset", sender="*****@*****.**", recipients=[user.email])
            msg.html = "<b>testing</b> \
                        #<a href='http://127.0.0.1:5000/passwordreset/" + key + "'>http://127.0.0.1:5000/passwordreset/" + key + "</a>"

            print msg.html
            mail.send(msg)
            
            flash('Email sent to: ' + user.email)
            return redirect(url_for('resetpassword'))
          else:
            flash('No such user')
            return redirect(url_for('resetpassword'))
        else:
            flash('No such user')
            return redirect(url_for('resetpassword'))

    return render_template('reset_password.html', form=form)
Beispiel #3
0
def resetpassword():
    form = PasswordResetForm()
    if form.validate_on_submit():
        if form.username.data:
            user = Users.query.filter_by(username=form.username.data).first()
        elif form.email.data:
            user = Users.query.filter_by(email=form.email.data).first()
        else:
            flash("Username or password doesn't exists")

        if user:
            if user.email:
                s = URLSafeSerializer('serliaizer_code')
                key = s.dumps([user.username, user.email])

            msg = Message("Password reset", sender="your_id@your_host.com", recipients=[user.email])
            msg.html = "<b>Click on this link to reset your password.</b> \
                        #<a href='http://127.0.0.1:5000/passwordreset/ \
                        " + key + "'>http://127.0.0.1:5000/passwordreset/ \
                        " + key + "</a>"

            send_async_email(msg)
            
            flash('Email sent to: ' + user.email)
            return redirect(url_for('resetpassword'))
        else:
            flash('No such user')
            return redirect(url_for('resetpassword'))
    flash(u'Enter your email or username')
    return render_template('reset_password.html', form=form)
Beispiel #4
0
def reset_pw():
    '''Route to reset a user's password.'''
    form = PasswordResetForm()
    if form.validate_on_submit():
        username = form.username.data
        user = User.query.filter_by(username=username).first()
        reset_password_start(user=user)
        return render_template('user/reset_password.html', sent=True, user=None)
    return render_template('user/reset_password.html', form=form, user=None)
Beispiel #5
0
def password_reset(token):
	form = PasswordResetForm()
	if form.validate_on_submit():
		user = User.query.filter_by(email=form.email.data).first()
		if user is None:
			flash('The eamil was not found.')
		if user.reset_password(token, form.password.data):
			flash('Your password has been updated.')
		return render_template('auth/trans.html')
	return render_template('auth/reset_password.html', form=form)
Beispiel #6
0
def password_reset(token):
    if not current_user.is_anonymous:
        return redirect(url_for('main.index'))
    form = PasswordResetForm()
    if form.validate_on_submit():
        if User.reset_password(token, form.password.data):
            db.session.commit()
            flash('Your password has been updated.')
            return redirect(url_for('auth.login'))
        else:
            return redirect(url_for('main.index'))
    return render_template('auth/reset_password.html', form=form)
Beispiel #7
0
def password_reset(token):
    form = PasswordResetForm()
    if form.validate_on_submit():
        user = UserDB.query.filter_by(email=form.email.data).first()
        if user is None:
            return redirect(url_for('index'))
        else:
            user.pwdhash = generate_password_hash(request.form['password'])
            db.session.commit()
            flash('Your password has been updated.')
            return redirect(url_for('login'))

    return render_template('password_reset.html', form=form)
Beispiel #8
0
def password_reset():
    # import worker
    if g.user is not None and g.user.is_authenticated():
        return redirect(request.args.get('next') or url_for('index'))
    form = PasswordResetForm()
    if form.validate_on_submit():
        user = form.get_user()
        if user:
            flash(u'Aktuell kann kein Passwort zuruckgesetzt werden.')
            # worker.reset_password_for_user(user)
        else:
            flash(u'Diese Email konnte im System nicht gefunden werden.')
    return render_template('user/pwreset.html', form=form)
Beispiel #9
0
def password_reset(token):
    if not current_user.is_anonymous:
        return redirect(url_for('main.index'))
    form = PasswordResetForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        if user.reset_password(token, form.new_password.data):
            flash('your password has been updated')
            return redirect(url_for('auth.login'))
        else:
            flash('invalid token')
            return redirect(url_for('main.index'))
    return render_template('auth/reset_password.html', form=form)
Beispiel #10
0
def reset_token(token):
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    user = User.verify_reset_token(token)
    if user is None:
        flash('That token is invalid or expired', 'warning')
        return redirect(url_for('reset_request'))
    form = PasswordResetForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(form.password.data).decode('utf-8')
        user.password = hashed_password
        # commiting changes made to the user's password
        db.session.commit()
        flash('Your password has been reset successfully,You can now login to your account!', 'success')
        return redirect(url_for('login'))
    return render_template('reset_token.html', title='Reset Password', form=form)
Beispiel #11
0
def reset_token(token):
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    user = User.verify_reset_token(token)
    if user is None:
        flash('That is an invalid or expired token', 'warning')
        return redirect(url_for('reset_request'))
    form = PasswordResetForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user.password = hashed_password
        db.session.commit()
        flash('Your password has been updated, please login', 'success')
        return redirect(url_for('login'))
    return render_template('admin/reset_token.html',
                           title='Reset Password',
                           form=form)
Beispiel #12
0
def forgot_password():
    form = PasswordResetForm()
    if form.validate_on_submit():
        user = User.query.filter_by(email=form.email.data).first()
        try:
            if user:
                # when both password are same
                if form.new_password.data == form.confirm_password.data:
                    hash_password = generate_password_hash(
                        form.confirm_password.data, method='sha256')
                    user.password = hash_password
                    db.session.commit()
                    flash("Password reset sucessfully!.")
                    # return '<h1>'+ 'Password is reset' +'</h1>'
                else:
                    flash("Password not match!.")
        except Exception as e:
            flash("There is no user for this Email.")

    return render_template("forgot_password.html", form=form)
def reset_password(token):
    form = PasswordResetForm()
    if form.validate_on_submit():
        payload = {'token': form.token.data, 'password': form.password.data}
        response = post(env('API_DRF_HOST') + '/reset_password/', data=payload)
        if response.status_code == 200:
            data = json.loads(response.text)
            session['email'] = data['email']
            session['auth_token'] = data['auth_token']
            flash('Password reset successful!')
            return redirect(url_for('index'))
        else:
            flash('Password reset failed. Please try again.')
            return redirect(url_for('request_password_reset'))

    if token:
        response = get(env('API_DRF_HOST') + '/reset_password/' + token)
        if response.status_code == 200:
            form = PasswordResetForm(token=token)
            return render_template('reset_password.html', form=form)
    flash('Password reset failed. Please try again.')
    return redirect(url_for('request_reset_password'))
Beispiel #14
0
def reset(token):
    email = None
    try:
        s = get_url_serializer(current_app)
        email = s.loads(token, salt='recovery-key')
    except:
        abort(404)

    form = PasswordResetForm()

    if form.validate_on_submit():
        user = User.query.filter_by(email=email).first_or_404()
        user.update_password(form.password.data)
        try:
            commit(db.session)
        except:
            send_error_email()
            flash('There has been an error')
            return redirect(url_for('auth.forgot_password'))
        flash('Password updated')
        return redirect(url_for('auth.login'))
    return render_template('auth/reset.html', form=form)
Beispiel #15
0
def reset_password(token):
    form = PasswordResetForm()
    if form.validate_on_submit():
        payload = {'token': form.token.data,
                   'password': form.password.data}
        response = post(env('API_HOST') + '/reset-password/', data=payload)
        if response.status_code == 200:
            data = json.loads(response.text)
            session['email'] = data['email']
            session['api_key'] = data['api_key']
            flash('Password reset successful!')
            return redirect(url_for('search'))
        else:
            flash('Password reset failed. Please try again.')
            return redirect(url_for('request_reset_password'))

    if token:
        response = get(env('API_HOST') + '/reset-password/' + token)
        if response.status_code == 200:
            form = PasswordResetForm(token=token)
            return render_template('reset_password.html', form=form)

    flash('Password reset failed. Please try again.')
    return redirect(url_for('request_reset_password'))
Beispiel #16
0
def forget():
    form_reset = PasswordResetForm()
    form_forget = ForgetPasswordForm()
    if form_forget.validate_on_submit():
        user_email = form_forget.email.data
        user_list = dat_loader.load_data("Users")["data"]
        customer_list = []
        for x in user_list:
            if isinstance(x, Customer):
                customer_list.append(x)
        for x in customer_list:
            if x.email == user_email:
                p_token = Pass_token(x.get_id())
                m1 = Mail()
                m1.content = f"""
        <!DOCTYPE html>
        <html lang="en">
          <body>
            <pre>
              Dear {x.get_name()},
        
              You have requested to reset your password for your Eclectic account. Copy or paste the link below to your
              browser or click on the link to reset your password. The link will expire after 2 hours.
              <a href="{p_token.get_link()}">{p_token.get_link()}</a>
        
              Warmest regards,
              Eclectic Support Team
            </pre>
          </body>
        </html>
        """
                m1.subject = "Eclectic Password Reset Link"
                m1.send(x.email)
                new_list = dat_loader.load_data("Tokens")["data"]
                new_list.append(p_token)
                dat_loader.write_data("Tokens", new_list, False)
        return redirect("/login/")
    elif request.args.get("auth") is None and not is_authenticated(request):
        return render_template("home/forget_password.html", form=form_forget)
    elif form_reset.validate_on_submit():
        user_id = int(form_reset.id.data)
        new_pass = form_reset.password1.data
        confirm_pass = form_reset.password2.data
        if new_pass == confirm_pass:
            user_list = dat_loader.load_data("Users")["data"]
            for x in user_list:
                if x.get_id() == user_id:
                    x.Change_password(new_pass)
                    dat_loader.write_data("Users", user_list, False)
                    return redirect("/login/")
            auth_token = request.args.get("auth")
            token_list = dat_loader.load_data("Tokens")["data"]
            for x in token_list:
                trial = x.use(auth_token)
                if trial is None:
                    pass
                else:
                    form_reset.id.data = trial
                    dat_loader.write_data("Tokens", token_list, False)
        else:
            return abort(400)
    elif not is_authenticated(request):
        auth_token = request.args.get("auth")
        token_list = dat_loader.load_data("Tokens")["data"]
        for x in token_list:
            trial = x.use(auth_token)
            if trial is None:
                pass
            else:
                form_reset.id.data = trial
                return render_template("home/new_password.html",
                                       form=form_reset)
        return redirect("/login/")