From 69c5921fb2472f5cafa050dae088120ad17ed23a Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Thu, 1 Jul 2010 06:04:47 +0000 Subject: Support user and email properties in WSGI integration. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@959523 13f79535-47bb-0310-9956-ffa450edef68 --- sca-cpp/trunk/modules/wsgi/scdl.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'sca-cpp/trunk/modules/wsgi/scdl.py') diff --git a/sca-cpp/trunk/modules/wsgi/scdl.py b/sca-cpp/trunk/modules/wsgi/scdl.py index 2a4a667173..a50bba3b7a 100644 --- a/sca-cpp/trunk/modules/wsgi/scdl.py +++ b/sca-cpp/trunk/modules/wsgi/scdl.py @@ -96,7 +96,7 @@ def properties(e): return () if match(car(e), "start", "property") == False: return properties(cdr(e)) - return cons(text(car(e)), properties(cdr(e))) + return cons((att(car(e))["name"], text(car(e))), properties(cdr(e))) # Return the list of services under a SCDL component element def services(e): @@ -189,17 +189,26 @@ def evalReference(r, comps): # value. The user and email properties are configured with the values # from the HTTP request, if any def evalProperty(p): - if (isTaggedList(p, "user")): + if car(p) == "user": return lambda: userProperty(cadr(p)) - if (isTaggedList(p, "email")): + if car(p) == "email": return lambda: emailProperty(cadr(p)) - return lambda: p + return lambda: cadr(p) + +def currentUser(): + try: + from google.appengine.api import users + return users.get_current_user() + except: + return None def userProperty(v): - return "nobody" + user = currentUser() + return user.user_id() if user else v def emailProperty(v): - return "nobody@nowhere.com" + user = currentUser() + return user.email() if user else v # Evaluate a component, resolve its implementation, references and # properties -- cgit v1.2.3