summaryrefslogtreecommitdiffstats
path: root/nfsw/auth.py
blob: 769a5dd18c72735902d90751cc9b8f0f0e105a99 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import functools

import os

from flask import (
    Blueprint, flash, g, redirect, render_template, request,
    session, url_for
)
from werkzeug.security import (
    check_password_hash, generate_password_hash
)

from nfsw.db import get_db


bp = Blueprint('auth', __name__)


def login_required(view):
    @functools.wraps(view)
    def wrapped_view(**kwargs):
        if g.user is None:
            return redirect(url_for('index'))

        return view(**kwargs)

    return wrapped_view


def anon_only(view):
    @functools.wraps(view)
    def wrapped_view(**kwargs):
        if g.user is not None:
            return redirect(url_for('io'))

        return view(**kwargs)

    return wrapped_view


def not_agreed(view):
    @functools.wraps(view)
    def wrapped_view(**kwargs):
        if g.user['terms_agreed']:
            return redirect(url_for('io'))

        return view(**kwargs)

    return wrapped_view