mirror of https://github.com/hashicorp/consul
45 lines
1.5 KiB
Handlebars
45 lines
1.5 KiB
Handlebars
<StateChart @src={{chart}} @initial={{if (eq type 'oidc') 'provider' 'secret'}} as |State Guard Action dispatch state|>
|
|
<Guard @name="isSecret" @cond={{action 'isSecret'}} />
|
|
{{!-- This `or` can be completely removed post 1.10 as 1.10 has optional params with default values --}}
|
|
{{#let (concat '/' (or partition '') '/' (or nspace '') '/' dc) as |path|}}
|
|
<State @matches="secret">
|
|
<DataSource
|
|
@src={{uri (concat path '/token/self/${value}')
|
|
(hash
|
|
value=value
|
|
)
|
|
}}
|
|
@onchange={{action 'change'}}
|
|
@onerror={{action onerror}}
|
|
/>
|
|
</State>
|
|
<State @matches="provider">
|
|
<DataSource
|
|
@src={{concat path '/oidc/provider/' value}}
|
|
@onchange={{queue (action (mut provider) value="data") (action dispatch "SUCCESS")}}
|
|
@onerror={{action onerror}}
|
|
/>
|
|
</State>
|
|
<State @matches="jwt">
|
|
<JwtSource
|
|
@src={{provider.AuthURL}}
|
|
@onchange={{queue (action (mut jwt) value="data") (action dispatch "SUCCESS")}}
|
|
@onerror={{action onerror}}
|
|
/>
|
|
</State>
|
|
<State @matches="token">
|
|
<DataSource
|
|
@src={{uri
|
|
(concat path '/oidc/authorize/${provider}/${code}/${state}')
|
|
(hash
|
|
provider=provider.Name
|
|
code=jwt.authorizationCode
|
|
state=(or jwt.authorizationState '')
|
|
)
|
|
}}
|
|
@onchange={{action 'change'}}
|
|
@onerror={{action onerror}}
|
|
/>
|
|
</State>
|
|
{{/let}}
|
|
</StateChart> |