iro/model/user.py
branchdevel
changeset 263 52284710c0b4
parent 125 19b3f383c9ce
child 282 50cc13814bfb
equal deleted inserted replaced
262:212a69cc4d44 263:52284710c0b4
    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()