1414
1515use crate :: api:: common;
1616use crate :: api:: error:: KeystoneApiError ;
17- use crate :: api:: v3:: auth:: token:: types:: { Token , TokenBuilder , UserBuilder } ;
17+ use crate :: api:: v3:: auth:: token:: types:: { System , Token , TokenBuilder , UserBuilder } ;
1818use crate :: api:: v3:: role:: types:: Role ;
1919use crate :: identity:: IdentityApi ;
2020use crate :: keystone:: ServiceState ;
@@ -38,6 +38,7 @@ impl Token {
3838 response. audit_ids ( token. audit_ids ( ) . clone ( ) ) ;
3939 response. methods ( token. methods ( ) . clone ( ) ) ;
4040 response. expires_at ( * token. expires_at ( ) ) ;
41+ response. issued_at ( * token. issued_at ( ) ) ;
4142
4243 let user = if let Some ( user) = token. user ( ) {
4344 user
@@ -75,15 +76,7 @@ impl Token {
7576 }
7677
7778 match token {
78- ProviderToken :: Unscoped ( _token) => { }
79- ProviderToken :: DomainScope ( token) => {
80- if domain. is_none ( ) {
81- domain = Some (
82- common:: get_domain ( state, Some ( & token. domain_id ) , None :: < & str > ) . await ?,
83- ) ;
84- }
85- }
86- ProviderToken :: ProjectScope ( token) => {
79+ ProviderToken :: ApplicationCredential ( token) => {
8780 if project. is_none ( ) {
8881 project = Some (
8982 state
@@ -98,7 +91,22 @@ impl Token {
9891 ) ;
9992 }
10093 }
101- ProviderToken :: ApplicationCredential ( token) => {
94+ ProviderToken :: DomainScope ( token) => {
95+ if domain. is_none ( ) {
96+ domain = Some (
97+ common:: get_domain ( state, Some ( & token. domain_id ) , None :: < & str > ) . await ?,
98+ ) ;
99+ }
100+ }
101+ ProviderToken :: FederationUnscoped ( _token) => { }
102+ ProviderToken :: FederationDomainScope ( token) => {
103+ if domain. is_none ( ) {
104+ domain = Some (
105+ common:: get_domain ( state, Some ( & token. domain_id ) , None :: < & str > ) . await ?,
106+ ) ;
107+ }
108+ }
109+ ProviderToken :: FederationProjectScope ( token) => {
102110 if project. is_none ( ) {
103111 project = Some (
104112 state
@@ -113,15 +121,7 @@ impl Token {
113121 ) ;
114122 }
115123 }
116- ProviderToken :: FederationUnscoped ( _token) => { }
117- ProviderToken :: FederationDomainScope ( token) => {
118- if domain. is_none ( ) {
119- domain = Some (
120- common:: get_domain ( state, Some ( & token. domain_id ) , None :: < & str > ) . await ?,
121- ) ;
122- }
123- }
124- ProviderToken :: FederationProjectScope ( token) => {
124+ ProviderToken :: ProjectScope ( token) => {
125125 if project. is_none ( ) {
126126 project = Some (
127127 state
@@ -151,6 +151,9 @@ impl Token {
151151 ) ;
152152 }
153153 }
154+ ProviderToken :: SystemScope ( _token) => {
155+ response. system ( System { all : true } ) ;
156+ }
154157 ProviderToken :: Trust ( token) => {
155158 if project. is_none ( ) {
156159 project = Some (
@@ -182,6 +185,7 @@ impl Token {
182185 ) ;
183186 }
184187 }
188+ ProviderToken :: Unscoped ( _token) => { }
185189 }
186190
187191 if let Some ( domain) = domain {
0 commit comments