/
route_utils.py
executable file
·85 lines (68 loc) · 2.27 KB
/
route_utils.py
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.
from bottle import *
import psycopg2
import psycopg2.extras
import collections
from beaker.middleware import SessionMiddleware
import bottle
import bcrypt
import hmac
from models.amazon import *
import models.warehouse.warehouse as whs
# admin
#import models.admin.admin as adm
import models.admin.users.users as admus
import models.admin.wh.wh_info as admwh
import models.admin.wh.pallet_locs as admpal
import models.admin.wh.picking_locs as admpic
import models.login.login as lgn
from pydb.dbconn import cur, dcur
session_opts = {
'session.type': 'file',
'session.cookie_expires': 14400,
'session.data_dir': './data',
'session.auto': True
}
@hook('before_request')
def setup_request():
request.session = request.environ['beaker.session']
#request.session["username"] = "sally"
#request.session["user_role"] = "user"
@hook('before_request')
def strip_path():
request.environ['PATH_INFO'] = request.environ['PATH_INFO'].rstrip('/')
@error(404)
def error404(error):
return "404; please press the back button"
@error(403)
def error403(error):
return "page restricted. Please press the back button"
def check_user(f):
def wrapper(*args, **kwargs):
if 'username' not in request.session:
redirect("/login")
return f(*args, **kwargs)
return wrapper
def check_admin(f):
def wrapper(*args, **kwargs):
role = request.session["user_role"]
if role not in ["admin", "original admin"]:
redirect("/")
return f(*args, **kwargs)
return wrapper
def check_warehouse_user(f):
def wrapper(*args, **kwargs):
role = request.session["user_role"]
if role not in ["admin", "original admin", "warehouses"]:
redirect("/")
return f(*args, **kwargs)
return wrapper
def check_orders_user(f):
def wrapper(*args, **kwargs):
role = request.session["user_role"]
if role not in ["admin", "original admin", "orders"]:
redirect("/")
return f(*args, **kwargs)
return wrapper
myapp = SessionMiddleware(bottle.app(), session_opts)
inv = True