summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZiad Sawalha <github@highbridgellc.com>2011-06-01 05:36:41 -0500
committerZiad Sawalha <github@highbridgellc.com>2011-06-01 05:39:23 -0500
commit83e6764f8139fbb08e7c83926dfb323c0db799d5 (patch)
tree88538f28c93f8a9942a66cbdc2b5b3405b31ffa2
parentdf49b1dd7182f2c2205912a637cf02e91eec7ab5 (diff)
Fixed issue #6
-rw-r--r--keystone/logic/service.py29
-rw-r--r--keystone/logic/types/auth.py28
-rw-r--r--keystone/server.py3
3 files changed, 42 insertions, 18 deletions
diff --git a/keystone/logic/service.py b/keystone/logic/service.py
index d503257c..24e05079 100644
--- a/keystone/logic/service.py
+++ b/keystone/logic/service.py
@@ -73,7 +73,7 @@ class IdentityService(object):
dtoken.expires = datetime.now() + timedelta(days=1)
db_api.token_create(dtoken)
- return self.__get_auth_data(dtoken, duser)
+ return self.__get_auth_data(dtoken)
def validate_token(self, admin_token, token_id, belongs_to=None):
self.__validate_token(admin_token)
@@ -88,7 +88,7 @@ class IdentityService(object):
if not user.enabled:
raise fault.UserDisabledFault("The user %s has been disabled!"
% user.id)
- return self.__get_auth_data(token, user)
+ return self.__get_validate_data(token, user)
def revoke_token(self, admin_token, token_id):
self.__validate_token(admin_token)
@@ -822,24 +822,21 @@ class IdentityService(object):
#
- def __get_auth_data(self, dtoken, duser):
- """return AuthData object for a token/user pair"""
+ def __get_auth_data(self, dtoken):
+ """return AuthData object for a token"""
+
+ token = auth.Token(dtoken.expires, dtoken.token_id, dtoken.tenant_id)
+
+ return auth.AuthData(token)
+
+ def __get_validate_data(self, dtoken, duser):
+ """return ValidateData object for a token/user pair"""
token = auth.Token(dtoken.expires, dtoken.token_id, dtoken.tenant_id)
- """gs = []
- for ug in duser.groups:
- dgroup = db_api.group_get(ug.group_id)
- if dtoken.tenant_id:
- if dgroup.tenant_id == dtoken.tenant_id:
- gs.append(auth.Group(dgroup.id, dgroup.tenant_id))
- else:
- if dgroup.tenant_id == None:
- gs.append(auth.Group(dgroup.id))
- user = auth.User(duser.id, dtoken.tenant_id, gs)
- """
user = auth.User(duser.id, duser.tenant_id, None)
- return auth.AuthData(token, user)
+
+ return auth.ValidateData(token, user)
def __validate_token(self, token_id, admin=True):
if not token_id:
diff --git a/keystone/logic/types/auth.py b/keystone/logic/types/auth.py
index 63dde05c..dd45073b 100644
--- a/keystone/logic/types/auth.py
+++ b/keystone/logic/types/auth.py
@@ -118,6 +118,32 @@ class User(object):
class AuthData(object):
"Authentation Information returned upon successful login."
+ def __init__(self, token):
+ self.token = token
+
+ def to_xml(self):
+ dom = etree.Element("auth",
+ xmlns="http://docs.openstack.org/identity/api/v2.0")
+ token = etree.Element("token",
+ expires=self.token.expires.isoformat())
+ token.set("id", self.token.token_id)
+ dom.append(token)
+ return etree.tostring(dom)
+
+ def to_json(self):
+ token = {}
+ token["id"] = self.token.token_id
+ token["expires"] = self.token.expires.isoformat()
+ auth = {}
+ auth["token"] = token
+ ret = {}
+ ret["auth"] = auth
+ return json.dumps(ret)
+
+
+class ValidateData(object):
+ "Authentation Information returned upon successful token validation."
+
def __init__(self, token, user):
self.token = token
self.user = user
@@ -169,4 +195,4 @@ class AuthData(object):
auth["user"] = user
ret = {}
ret["auth"] = auth
- return json.dumps(ret)
+ return json.dumps(ret) \ No newline at end of file
diff --git a/keystone/server.py b/keystone/server.py
index 678f71eb..abd9ef31 100644
--- a/keystone/server.py
+++ b/keystone/server.py
@@ -476,7 +476,8 @@ class RolesController(wsgi.Controller):
rval = service.delete_role_ref(utils.get_auth_token(req),
role_ref_id)
return utils.send_result(204, req, rval)
-
+
+
class BaseURLsController(wsgi.Controller):
"""
BaseURL Controller -