iro/model/user.py
branchdevel
changeset 115 323d06431100
parent 114 1ed072cc6793
child 117 351a02310dd8
--- a/iro/model/user.py	Fri Jan 27 15:01:59 2012 +0100
+++ b/iro/model/user.py	Fri Jan 27 17:49:57 2012 +0100
@@ -1,9 +1,9 @@
 from inspect import getcallargs
-from functools import wraps
+from decorator import decorator
 
 from .schema import User
 from .utils import DBDefer
-from ..validate import vuserhash, validate
+from ..validate import validate, vHash
 from ..error import UserNotFound, InterfaceException
 
 dbdefer=DBDefer(None)
@@ -12,8 +12,9 @@
     dbdefer.engine = engine
     dbdefer.autocommit = autocommit
 
+
 @dbdefer
-@validate(kwd="apikey", func=vuserhash)
+@validate(kwd="apikey", func=vHash, minlength=15, maxlength=15)
 def getuser(apikey, session):
     user = session.query(User).filter_by(apikey=apikey).first()
     if user is None:
@@ -21,25 +22,19 @@
     else:
         return user
 
-def with_user(f):
-    @wraps(f)
-    def wrapper(*args,**kargs):
-        kp=getcallargs(wrapper.original,*args,**kargs)
-        try:
-            apikey = kp["user"]
-        except KeyError:
-            raise InterfaceException() 
-        
-        def _gotResult(_user):
-            kp["user"]=_user
-            return f(**kp)
+@decorator
+def vUser(f,*args,**kargs):
+    kp=getcallargs(f,*args,**kargs)
+    try:
+        apikey = kp["user"]
+    except KeyError:
+        raise InterfaceException() 
+    
+    def _gotResult(_user):
+        kp["user"]=_user
+        return f(**kp)
 
-        d=getuser(apikey=apikey)
-        return d.addCallback(_gotResult)
-    try:
-        wrapper.original=f.original
-    except AttributeError:
-        wrapper.original=f
-    return wrapper
+    d=getuser(apikey=apikey)
+    return d.addCallback(_gotResult)