mirror of
https://github.com/status-im/consul.git
synced 2025-01-10 05:45:46 +00:00
5fb9df1640
* Adding explicit MPL license for sub-package This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository. * Adding explicit MPL license for sub-package This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository. * Updating the license from MPL to Business Source License Going forward, this project will be licensed under the Business Source License v1.1. Please see our blog post for more details at <Blog URL>, FAQ at www.hashicorp.com/licensing-faq, and details of the license at www.hashicorp.com/bsl. * add missing license headers * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 --------- Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
214 lines
6.4 KiB
Handlebars
214 lines
6.4 KiB
Handlebars
{{!
|
|
Copyright (c) HashiCorp, Inc.
|
|
SPDX-License-Identifier: BUSL-1.1
|
|
}}
|
|
|
|
<ChildSelector
|
|
@disabled={{disabled}}
|
|
@repo={{repo}}
|
|
@dc={{dc}}
|
|
@partition={{partition}}
|
|
@nspace={{nspace}}
|
|
@type="policy"
|
|
@placeholder="Search for policy"
|
|
@items={{items}}
|
|
...attributes
|
|
>
|
|
{{yield}}
|
|
<BlockSlot @name="label" data-test-apply-policy>
|
|
Apply an existing policy
|
|
</BlockSlot>
|
|
<BlockSlot @name="create">
|
|
{{#yield-slot name='trigger'}}
|
|
{{yield}}
|
|
{{else}}
|
|
<Hds::Button
|
|
@text='Create new policy'
|
|
@size='small'
|
|
@color='tertiary'
|
|
@icon='plus'
|
|
class='type-dialog'
|
|
data-test-policy-create
|
|
{{on "click" (action this.openModal)}}
|
|
/>
|
|
{{!TODO: potentially call trigger something else}}
|
|
{{!the modal has to go here so that if you provide a slot to trigger it doesn't get rendered}}
|
|
<ModalDialog
|
|
data-test-policy-form
|
|
id="new-policy"
|
|
@onopen={{action "open"}}
|
|
@aria={{hash
|
|
label='New Policy'
|
|
}}
|
|
as |modal|>
|
|
<Ref @target={{this}} @name="modal" @value={{modal}} />
|
|
<BlockSlot @name="header">
|
|
<h2>New Policy</h2>
|
|
</BlockSlot>
|
|
<BlockSlot @name="body">
|
|
<PolicyForm
|
|
@form={{form}}
|
|
@nspace={{nspace}}
|
|
@partition={{partition}}
|
|
@dc={{dc}}
|
|
@allowServiceIdentity={{allowServiceIdentity}}
|
|
/>
|
|
</BlockSlot>
|
|
<BlockSlot @name="actions" as |close|>
|
|
<Hds::ButtonSet>
|
|
<Hds::Button
|
|
type="submit"
|
|
@isLoading={{item.isSaving}}
|
|
onclick={{perform this.save item items (queue (action close) (action 'reset'))}}
|
|
disabled={{if (or item.isSaving item.isPristine item.isInvalid) 'disabled'}}
|
|
@text='Create and apply'
|
|
/>
|
|
<Hds::Button
|
|
type="reset"
|
|
@color="secondary"
|
|
disabled={{if item.isSaving 'disabled'}}
|
|
{{on 'click' (action (queue (action close) (action 'reset')))}}
|
|
@text='Cancel'
|
|
/>
|
|
</Hds::ButtonSet>
|
|
</BlockSlot>
|
|
</ModalDialog>
|
|
{{/yield-slot}}
|
|
</BlockSlot>
|
|
<BlockSlot @name="option" as |option|>
|
|
{{option.Name}}
|
|
</BlockSlot>
|
|
<BlockSlot @name="set">
|
|
<TabularDetails
|
|
data-test-policies
|
|
@onchange={{action 'open'}}
|
|
@items={{sort-by 'CreateTime:desc' 'Name:asc' items}} as |item index|
|
|
>
|
|
<BlockSlot @name="header">
|
|
<th>Name</th>
|
|
</BlockSlot>
|
|
<BlockSlot @name="row">
|
|
<td class={{policy/typeof item}}>
|
|
{{#if item.ID }}
|
|
<a href={{href-to 'dc.acls.policies.edit' item.ID}}>{{item.Name}}</a>
|
|
{{else}}
|
|
<a name={{item.Name}}>{{item.Name}}</a>
|
|
{{/if}}
|
|
</td>
|
|
</BlockSlot>
|
|
<BlockSlot @name="details">
|
|
{{#if (eq item.template '')}}
|
|
<DataSource
|
|
@src={{uri '/${partition}/${nspace}/${dc}/policy/${id}'
|
|
(hash
|
|
partition=partition
|
|
nspace=nspace
|
|
dc=dc
|
|
id=item.ID
|
|
)
|
|
}}
|
|
@onchange={{action (mut loadedItem) value="data"}}
|
|
@loading="lazy"
|
|
/>
|
|
{{/if}}
|
|
{{#if (eq item.template 'node-identity')}}
|
|
<dl>
|
|
<dt>Datacenter:</dt>
|
|
<dd>
|
|
{{item.Datacenter}}
|
|
</dd>
|
|
</dl>
|
|
{{else}}
|
|
<dl>
|
|
<dt>Datacenters:</dt>
|
|
<dd>
|
|
{{join ', ' (policy/datacenters (or loadedItem item))}}
|
|
</dd>
|
|
</dl>
|
|
{{/if}}
|
|
<label class="type-text">
|
|
{{#if (eq item.template 'service-identity')}}
|
|
<CodeEditor
|
|
@syntax="hcl"
|
|
@readonly={{true}}
|
|
>
|
|
<:label>
|
|
Rules <a href="{{env 'CONSUL_DOCS_URL'}}/guides/acl.html#rule-specification" rel="help noopener noreferrer" target="_blank">(HCL Format)</a>
|
|
</:label>
|
|
<:content>
|
|
<Consul::ServiceIdentity::Template
|
|
@nspace={{nspace}}
|
|
@partition={{partition}}
|
|
@name={{item.Name}}
|
|
/>
|
|
</:content>
|
|
</CodeEditor>
|
|
{{else if (eq item.template 'node-identity')}}
|
|
<CodeEditor
|
|
@syntax="hcl"
|
|
@readonly={{true}}
|
|
>
|
|
<:label>
|
|
Rules <a href="{{env 'CONSUL_DOCS_URL'}}/guides/acl.html#rule-specification" rel="help noopener noreferrer" target="_blank">(HCL Format)</a>
|
|
</:label>
|
|
<:content>
|
|
<Consul::NodeIdentity::Template
|
|
@name={{item.Name}}
|
|
@partition={{partition}}
|
|
/>
|
|
</:content>
|
|
</CodeEditor>
|
|
{{else}}
|
|
<CodeEditor
|
|
@syntax="hcl"
|
|
@readonly={{true}}
|
|
@value={{or loadedItem.Rules item.Rules}}
|
|
>
|
|
<:label>
|
|
Rules <a href="{{env 'CONSUL_DOCS_URL'}}/guides/acl.html#rule-specification" rel="help noopener noreferrer" target="_blank">(HCL Format)</a>
|
|
</:label>
|
|
</CodeEditor>
|
|
{{/if}}
|
|
</label>
|
|
{{#if (not disabled)}}
|
|
<div>
|
|
<ConfirmationDialog @message="Are you sure you want to remove this policy from this token?">
|
|
<BlockSlot @name="action" as |confirm|>
|
|
<Hds::Button
|
|
@text='Remove'
|
|
@color='critical'
|
|
@size='small'
|
|
{{action confirm 'remove' item items}}
|
|
data-test-delete
|
|
/>
|
|
</BlockSlot>
|
|
<BlockSlot @name="dialog" as |execute cancel message|>
|
|
<p>
|
|
{{message}}
|
|
</p>
|
|
<Hds::ButtonSet>
|
|
<Hds::Button
|
|
@text='Confirm remove'
|
|
@color='critical'
|
|
@size='small'
|
|
{{action execute}}
|
|
data-test-delete
|
|
/>
|
|
<Hds::Button
|
|
@text='Cancel'
|
|
@color='secondary'
|
|
@size='small'
|
|
{{action cancel}}
|
|
data-test-delete
|
|
/>
|
|
</Hds::ButtonSet>
|
|
</BlockSlot>
|
|
</ConfirmationDialog>
|
|
</div>
|
|
{{/if}}
|
|
</BlockSlot>
|
|
</TabularDetails>
|
|
|
|
</BlockSlot>
|
|
</ChildSelector>
|