Esempio n. 1
0
def login():
    if request.method == 'POST':
        # get input
        username = request.form['username']
        password = request.form['password']

        # validate
        user = db.session.query(User).filter(User.name == username).first()
        error = []
        if user is None:
            error.append('Incorrect username.')
        elif not check_password_hash(user.password, password):
            error.append('Incorrect password.')

        # passed
        if not error:
            # get redirect url
            redirect_url = session.get('login_redirect')
            if redirect_url is None:
                redirect_url = url_for('web.index')

            # login process
            session.clear()
            session['user_id'] = user.id
            set_session_message('You are now logged.')
            return redirect(redirect_url)

        flash('\n'.join(error))

    return render_template('auth/login.html')
Esempio n. 2
0
def twitter_account():
    if request.method == 'POST':
        twitter_account_name = request.form['twitter_account_name']

        error = []
        if not twitter_account_name:
            error.append('入力してください。')

        try:
            response = usersShow(screen_name=twitter_account_name)

        except urllib.error.HTTPError as e:
            error_texts = {
                404: 'ツイッターアカウントが見つかりませんでした。',
                'server_error': 'ツイッターのサーバーエラーが発生しています。時間をおいて再度お試しください。'
            }
            text = getHttpErrorText(e, error_texts)
            error.append(text)

        except Exception as e:
            error.append(getAllErrorText(e))

        else:
            twitter_user_id = response.getUser().getUserId()

        if not error:
            g.user.twitter_user_id = twitter_user_id
            db.session.commit()
            set_session_message('ツイッターアカウントを登録しました。')
            return redirect(url_for('web.index'))

        flash('\n'.join(error))

    return render_template('user/twitter_account.html')
Esempio n. 3
0
def callback():
    if request.args.get('oauth_verifier', None):
        set_session_message('ツイッターアプリ連携を拒否しました。')
        return redirect(url_for('web.index'))

    oauth_token_secret = session.get('oauth_token_secret')
    if not oauth_token_secret:
        set_session_message('sessionが不正です。正しい手順でアクセスしてください。')
        return redirect(url_for('web.index'))

    error = []
    oauth_token = request.args.get('oauth_token')
    if not oauth_token:
        error.append('パラメータを取得できませんでした(t)')

    oauth_verifier = request.args.get('oauth_verifier')
    if not oauth_verifier:
        error.append('パラメータを取得できませんでした(v)')

    if not error:
        pass

    set_session_message('\n'.join(error))
    return redirect(url_for('oauth.redirect'))
Esempio n. 4
0
 def wrapped_view(**kwargs):
     if g.user.permission > constant.PERMISSION_BACKEND:
         set_session_message('権限がないため、要求された画面は開けません。')
         return redirect(url_for('web.index'))
     return view(**kwargs)
Esempio n. 5
0
def delete():
    db.session.delete(g.user)
    db.session.commit()
    session.clear()
    set_session_message('User deleted.')
    return redirect(url_for('auth.login'))
Esempio n. 6
0
def logout():
    session.clear()
    set_session_message('Logged out.')
    return redirect(url_for('auth.login'))
Esempio n. 7
0
 def wrapped_view(**kwargs):
     if g.user is None:
         set_session_message('ログインしてください。')
         session['login_redirect'] = request.url
         return redirect(url_for('auth.login'))
     return view(**kwargs)