equal
deleted
inserted
replaced
10 |
10 |
11 |
11 |
12 @validate(kwd="apikey", func=vHash, minlength=15, maxlength=15) |
12 @validate(kwd="apikey", func=vHash, minlength=15, maxlength=15) |
13 @dbdefer |
13 @dbdefer |
14 def getuser(session, apikey): |
14 def getuser(session, apikey): |
|
15 """Returns a valid user object. |
|
16 |
|
17 :param session: a valid session object (is created by decorator :func:`iro.model.dbdefer.dbdefer`) |
|
18 :param string apikey: a vaild apikey (only [0-9a-f] is allowed) |
|
19 :return: a :class:`iro.model.schema.User` object |
|
20 :raises: :exc:`iro.error.UserNotFound` |
|
21 """ |
15 user = session.query(User).filter_by(apikey=apikey).first() |
22 user = session.query(User).filter_by(apikey=apikey).first() |
16 if user is None: |
23 if user is None: |
17 raise UserNotFound() |
24 raise UserNotFound() |
18 else: |
25 else: |
19 return user |
26 return user |
20 |
27 |
21 @decorator |
28 @decorator |
22 def vUser(f,*args,**kargs): |
29 def vUser(f,*args,**kargs): |
|
30 """A Decorator to verify the apikey and execute the function with a valid :class:`iro.model.schema.User` instead of the apikey. |
|
31 |
|
32 The decorator expect the apikey in the **user** parameter. |
|
33 |
|
34 :return: a defer |
|
35 """ |
23 kp=getcallargs(f,*args,**kargs) |
36 kp=getcallargs(f,*args,**kargs) |
24 try: |
37 try: |
25 apikey = kp["user"] |
38 apikey = kp["user"] |
26 except KeyError: |
39 except KeyError: |
27 raise InterfaceException() |
40 raise InterfaceException() |