equal
deleted
inserted
replaced
1 import logging |
|
2 import re |
1 import re |
3 |
2 |
4 from .database import WithSession |
|
5 from ..model import User |
3 from ..model import User |
6 |
4 |
7 from ..error import UserNotFound, InterfaceException, ValidateException |
5 from ..error import UserNotFound, InterfaceException, ValidateException |
8 |
6 |
9 |
7 |
22 return new_f |
20 return new_f |
23 return v |
21 return v |
24 |
22 |
25 |
23 |
26 @validate(userhash=rehash) |
24 @validate(userhash=rehash) |
27 def getuser(userhash): |
25 def getuser(userhash, session): |
28 with WithSession() as session: |
26 user = session.query(User).filter_by(apikey=userhash).first() |
29 user = session.query(User).filter_by(apikey=userhash).first() |
27 if user is None: |
30 if user is None: |
28 raise UserNotFound() |
31 raise UserNotFound() |
29 else: |
32 else: |
30 return user |
33 return user |
|
34 |
31 |
35 def with_user(f): |
32 def with_user(f): |
36 def new_f(*args,**kargs): |
33 def new_f(*args,**kargs): |
37 args=list(args) |
34 args=list(args) |
38 logging.debug("Entering %s"%f.__name__) |
|
39 try: |
35 try: |
40 kargs["user"]=getuser(userhash = kargs["apikey"]) |
36 userhash = kargs["apikey"] |
41 del kargs["apikey"] |
37 del kargs["apikey"] |
42 except KeyError: |
38 except KeyError: |
43 try: |
39 try: |
44 kargs["user"]=getuser(userhash = args[1]) |
40 userhash = args[1] |
|
41 del args[1] |
45 except IndexError: |
42 except IndexError: |
46 raise InterfaceException() |
43 raise InterfaceException() |
47 del args[1] |
44 |
48 ret=f(*args,**kargs) |
45 def _gotResult(_user): |
49 logging.debug("Exited %s"%f.__name__) |
46 kargs["user"]=_user |
50 return ret |
47 return f(*args,**kargs) |
|
48 return getuser(userhash=userhash).addCallback(_gotResult) |
|
49 |
51 new_f.__name__ = f.__name__ |
50 new_f.__name__ = f.__name__ |
52 return new_f |
51 return new_f |
53 |
52 |
54 |
53 |