Beispiel #1
0
def login_create_account():
    if request.method == "POST":
        form = EmailForm(request.form)
        if form.validate():
            email = form.data.get('email').lower()
            user_hash = resolve_user_by_email(email)
            if user_hash:
                flash(
                    u'Účet s tímto e-mailem již existuje, '
                    u'chcete obnovit zapomenuté heslo?', 'warning')
                return redirect(
                    url_for('login_forgotten_password', email=email))
            raw_email = email
            email = base64.b64encode(email)
            token = md5("%s|%s" % (app.secret_key, email)).hexdigest()
            url = url_for('login_click_from_email',
                          token=token,
                          email=email,
                          _external=True)

            if app.debug:
                flash(url, "debug")

            send_mail(u'Vytvoření účtu', raw_email, "data/verify-account.md",
                      url)
            return redirect(url_for('login_email_verify'))
    else:
        form = EmailForm()
    return render_template('login_create_account.html', form=form)
Beispiel #2
0
def login_facebook_authorized(resp):
    if resp is None:
        return 'Access denied: reason=%s error=%s' % (
            request.args['error_reason'], request.args['error_description'])
    session['facebook_token'] = (resp['access_token'], '')
    me = facebook.get('/me')

    user_hash = resolve_user_by_email(me.data['email'])
    if not user_hash:
        print me.data
        pass
        # pokud ucet neexistuje, vytvorime (a vyplnime) ho z FB
        user_hash = create_account(me.data['email'],
                                   None,
                                   data={
                                       'verified':
                                       True,
                                       'name':
                                       me.data['name'],
                                       'location':
                                       me.data.get('location',
                                                   {}).get('name', None),
                                       'gender':
                                       me.data.get('gender', None),
                                       'bio':
                                       me.data.get('bio', None),
                                   })

    session['user_hash'] = user_hash  # prihlaseni hotovo
    return redirect(request.args.get('next') or url_for('index'))
Beispiel #3
0
def login_forgotten_password():
    if request.method == "POST":
        form = EmailForm(request.form)
        if form.validate():
            email = form.data.get('email')
            if not resolve_user_by_email(email):
                flash(u'Nejprve si svůj e-mail zaregistrujte', 'warning')
                redirect(url_for('login_create_account'))
            raw_email = email
            email = base64.b64encode(email)
            token = md5("%s|%s" % (app.secret_key, email)).hexdigest()
            url = url_for('login_click_from_email_password',
                          token=token,
                          email=email,
                          _external=True)

            if app.debug:
                flash(url, "debug")

            send_mail(u'Obnovení hesla', raw_email, "data/reset-password.md",
                      url)
            return redirect(url_for('login_forgotten_verify'))
    else:
        form = EmailForm(request.args)

    return render_template('login_forgotten.html', form=form)
Beispiel #4
0
def login_create_account():
    if request.method == "POST":
        form = EmailForm(request.form)
        if form.validate():
            email = form.data.get('email').lower()
            user_hash = resolve_user_by_email(email)
            if user_hash:
                flash(
                    u'Účet s tímto e-mailem již existuje, '
                    u'chcete obnovit zapomenuté heslo?',
                    'warning')
                return redirect(url_for(
                    'login_forgotten_password',
                    email=email))
            raw_email = email
            email = base64.b64encode(email)
            token = md5("%s|%s" % (app.secret_key, email)).hexdigest()
            url = url_for(
                'login_click_from_email',
                token=token,
                email=email,
                _external=True)

            if app.debug:
                flash(url, "debug")

            send_mail(
                u'Vytvoření účtu',
                raw_email,
                "data/verify-account.md",
                url)
            return redirect(url_for('login_email_verify'))
    else:
        form = EmailForm()
    return render_template('login_create_account.html', form=form)
Beispiel #5
0
def login():
    next = session.get('next', None)
    if request.method == "POST":
        form = LoginForm(request.form)
        if form.validate():
            user_hash = resolve_user_by_email(
                form.data.get('email'),
                form.data.get('password'))
            if not user_hash:
                session['default_email'] = form.data.get('email')
                flash(
                    u'Neplatná kombinace e-mailu a hesla, zkuste to znovu.',
                    'warning')
            else:
                session.clear()
                session['user_hash'] = user_hash

    else:
        form = LoginForm()

    if check_auth():
        flash(u'Nyní jste přihlášen', 'success')
        return redirect(next or url_for('login_settings'))

    return render_template("login.html", form=form)
Beispiel #6
0
def login_forgotten_password():
    if request.method == "POST":
        form = EmailForm(request.form)
        if form.validate():
            email = form.data.get('email')
            if not resolve_user_by_email(email):
                flash(u'Nejprve si svůj e-mail zaregistrujte', 'warning')
                redirect(url_for('login_create_account'))
            raw_email = email
            email = base64.b64encode(email)
            token = md5("%s|%s" % (app.secret_key, email)).hexdigest()
            url = url_for(
                'login_click_from_email_password',
                token=token,
                email=email,
                _external=True)

            if app.debug:
                flash(url, "debug")

            send_mail(
                u'Obnovení hesla',
                raw_email,
                "data/reset-password.md",
                url)
            return redirect(url_for('login_forgotten_verify'))
    else:
        form = EmailForm(request.args)

    return render_template('login_forgotten.html', form=form)
Beispiel #7
0
def login():
    next = session.get('next', None)
    if request.method == "POST":
        form = LoginForm(request.form)
        if form.validate():
            user_hash = resolve_user_by_email(
                form.data.get('email'),
                form.data.get('password'))
            if not user_hash:
                session['default_email'] = form.data.get('email')
                flash(
                    u'Neplatná kombinace e-mailu a hesla, zkuste to znovu.',
                    'warning')
            else:
                session.clear()
                session['user_hash'] = user_hash

    else:
        form = LoginForm()

    if check_auth():
        flash(u'Nyní jste přihlášen', 'success')
        return redirect(next or url_for('login_settings'))

    return render_template("login.html", form=form)
Beispiel #8
0
def login_create_account():
    if request.method == "POST":
        form = EmailForm(request.form)
        if form.validate():
            email = form.data.get("email").lower()
            user_hash = resolve_user_by_email(email)
            if user_hash:
                flash(u"Účet s tímto e-mailem již existuje, " u"chcete obnovit zapomenuté heslo?", "warning")
                return redirect(url_for("login_forgotten_password", email=email))
            # TODO send email
            email = base64.b64encode(email)
            token = md5("%s|%s" % (app.secret_key, email)).hexdigest()
            url = url_for("login_click_from_email", token=token, email=email, _external=True)
            flash("tohle poslu mailem - %s " % url, "debug")
            return redirect(url_for("login_email_verify"))
    else:
        form = EmailForm()
    return render_template("login_create_account.html", form=form)
Beispiel #9
0
def login_reset_password():
    email = session.get("reset-email", None)
    if not email:
        abort(403)

    if request.method == "POST":
        form = PasswordForm(request.form)
        if form.validate():
            user_hash = resolve_user_by_email(email)
            update_password(user_hash, email, form.data.get("password", None))
            next = session.get("next", None)
            session.clear()
            session["user_hash"] = user_hash
            flash(u"Heslo bylo změneno", "success")
            return redirect(next or url_for("index"))
    else:
        form = PasswordForm()
    return render_template("login_reset_password.html", form=form)
Beispiel #10
0
def login_forgotten_password():
    if request.method == "POST":
        form = EmailForm(request.form)
        if form.validate():
            email = form.data.get("email")
            if not resolve_user_by_email(email):
                flash(u"Nejprve si svůj e-mail zaregistrujte", "warning")
                redirect(url_for("login_create_account"))
            # TODO send mail
            email = base64.b64encode(email)
            token = md5("%s|%s" % (app.secret_key, email)).hexdigest()
            url = url_for("login_click_from_email_password", token=token, email=email, _external=True)
            flash("tohle poslu mailem - %s " % url, "debug")
            return redirect(url_for("login_forgotten_verify"))
    else:
        form = EmailForm(request.args)

    return render_template("login_forgotten.html", form=form)
Beispiel #11
0
def login_reset_password():
    email = session.get('reset-email', None)
    if not email:
        abort(403)

    if request.method == "POST":
        form = PasswordForm(request.form)
        if form.validate():
            user_hash = resolve_user_by_email(email)
            update_password(user_hash, email, form.data.get('password', None))
            next = session.get('next', None)
            session.clear()
            session['user_hash'] = user_hash
            flash(u'Heslo bylo změneno', 'success')
            return redirect(next or url_for('index'))
    else:
        form = PasswordForm()
    return render_template('login_reset_password.html', form=form)
Beispiel #12
0
def login_reset_password():
    email = session.get('reset-email', None)
    if not email:
        abort(403)

    if request.method == "POST":
        form = PasswordForm(request.form)
        if form.validate():
            user_hash = resolve_user_by_email(email)
            update_password(user_hash, email, form.data.get('password', None))
            next = session.get('next', None)
            session.clear()
            session['user_hash'] = user_hash
            flash(u'Heslo bylo změneno', 'success')
            return redirect(next or url_for('index'))
    else:
        form = PasswordForm()
    return render_template('login_reset_password.html', form=form)
Beispiel #13
0
def login():
    next = session.get("next", None)
    if request.method == "POST":
        form = LoginForm(request.form)
        if form.validate():
            user_hash = resolve_user_by_email(form.data.get("email"), form.data.get("password"))
            if not user_hash:
                session["default_email"] = form.data.get("email")
                flash(u"Neplatná kombinace e-mailu a hesla, zkuste to znovu.", "warning")
            else:
                session.clear()
                session["user_hash"] = user_hash

    else:
        form = LoginForm()

    if check_auth():
        flash(u"Nyní jste přihlášen", "success")
        return redirect(next or url_for("login_settings"))

    return render_template("login.html", form=form)
Beispiel #14
0
def login_facebook_authorized(resp):
    if resp is None:
        return 'Access denied: reason=%s error=%s' % (
            request.args['error_reason'],
            request.args['error_description']
        )
    session['facebook_token'] = (resp['access_token'], '')
    me = facebook.get('/me')

    user_hash = resolve_user_by_email(me.data['email'])
    if not user_hash:
        # me.data
        # pokud ucet neexistuje, vytvorime (a vyplnime) ho z FB
        user_hash = create_account(me.data['email'], None, data={
            'verified': True,
            'name': me.data['name'],
            'location': me.data.get('location', {}).get('name', None),
            'gender': me.data.get('gender', None),
            'bio': me.data.get('bio', None),
        })

    session['user_hash'] = user_hash  # prihlaseni hotovo
    return redirect(request.args.get('next') or url_for('index'))