diff options
Diffstat (limited to 'keystone/token/providers/uuid.py')
-rw-r--r-- | keystone/token/providers/uuid.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/keystone/token/providers/uuid.py b/keystone/token/providers/uuid.py index 262e10e4a..d849eefd3 100644 --- a/keystone/token/providers/uuid.py +++ b/keystone/token/providers/uuid.py @@ -213,7 +213,15 @@ class V3TokenDataHelper(object): return if access_token: - token_data['roles'] = json.loads(access_token['requested_roles']) + filtered_roles = [] + authed_role_ids = json.loads(access_token['role_ids']) + all_roles = self.identity_api.list_roles() + for role in all_roles: + for authed_role in authed_role_ids: + if authed_role == role['id']: + filtered_roles.append({'id': role['id'], + 'name': role['name']}) + token_data['roles'] = filtered_roles return if CONF.trust.enabled and trust: |