open-vault/ui/app/templates/partials/transit-form-edit.hbs
Matthew Irish 21af204683
UI namespaces (#5119)
* add namespace sidebar item

* depend on ember-inflector directly

* list-view and list-item components

* fill out components and render empty namespaces page

* list namespaces in access

* add menu contextual component to list item

* popup contextual component

* full crud for namespaces

* add namespaces service and picker component

* split application and vault.cluster templates and controllers, add namespace query param, add namespace-picker to vault.namespace template

* remove usage of href-to

* remove ember-href-to from deps

* add ember-responsive

* start styling the picker and link to appropriate namespaces, use ember-responsive to render picker in different places based on the breakpoint

* get query param working and save ns to authdata when authenticating, feed through ns in application adapter

* move to observer on the controller for setting state on the service

* set state in the beforeModel hook and clear the ember data model cache

* nav to secrets on change and make error handling more resilient utilizing the method that atlas does to eagerly update URLs

* add a list of sys endpoints in a helper

* hide header elements if not in the root namespace

* debounce namespace input on auth, fix 404 for auth method fetch, move auth method fetch to a task on the auth-form component and refretch on namespace change

* fix display of supported engines and exclusion of sys and identity engines

* don't fetch replication status if you're in a non-root namespace

* hide seal sub-menu if not in the root namespace

* don't autocomplete auth form inputs

* always send some requests to the root namespace

* use methodType and engineType instead of type in case there it is ns_ prefixed

* use sys/internal/ui/namespaces to fetch the list in the dropdown

* don't use model for namespace picker and always make the request to the token namespace

* fix header handling for fetch calls

* use namespace-reminder component on creation and edit forms throughout the application

* add namespace-reminder to the console

* add flat

* add deepmerge for creating the tree in the menu

* delayed rendering for animation timing

* design and code feedback on the first round

* white text in the namespace picker

* fix namespace picker issues with root keys

* separate path-to-tree

* add tests for path-to-tree util

* hide picker if you're in the root ns and you can't access other namespaces

* show error message if you enter invalid characters for namespace path

* return a different model if we dont have the namespaces feature and show upgrade page

* if a token has a namespace_path, use that as the root user namespace and transition them there on login

* use token namespace for user, but use specified namespace to log in

* always renew tokens in the token namespace

* fix edition-badge test
2018-08-16 12:48:24 -05:00

105 lines
3.8 KiB
Handlebars

<form onsubmit={{action "createOrUpdateKey" "create"}} onchange={{action "handleChange"}}>
<div class="box is-sideless is-fullwidth is-marginless">
{{message-error model=key}}
<NamespaceReminder @mode="edit" @noun="transit key" />
<div class="field">
<div class="b-checkbox">
<input
id="key-allows-delete"
type="checkbox"
checked={{key.deletionAllowed}}
class="styled"
onchange={{action "setValueOnKey" "deletionAllowed"}}
/>
<label for="key-allows-delete" class="is-label">
Allow deletion
</label>
</div>
</div>
<div class="field">
<label for="key-min-version" class="is-label">Minimum decryption version</label>
<div class="control is-expanded">
<div class="select is-fullwidth">
<select
name="key-min-version"
id="key-min-version"
onchange={{action (mut key.minDecryptionVersion) value="target.value"}}
>
{{#each key.keyVersions as |version|}}
<option selected={{eq key.minDecryptionVersion version}} value={{version}}>
<code>{{version}}</code>
</option>
{{/each}}
</select>
</div>
</div>
<p class="help">
The minimum decryption version required to reverse transformations performed with the encryption key. Results from lower key versions
may be rewrapped with the new key version using the <code>rewrap</code> action.
</p>
</div>
<div class="field">
<label for="key-min-version" class="is-label">Minimum encryption version</label>
<div class="control is-expanded">
<div class="select is-fullwidth">
<select
name="key-min-version"
id="key-min-version"
onchange={{action (mut key.minEncryptionVersion) value="target.value"}}
>
<option
selected={{eq key.minEncryptionVersion 0 }}
value=0
>
<code>Latest</code> (currently {{key.latestVersion}})
</option>
{{#each key.encryptionKeyVersions as |version|}}
<option selected={{eq key.minEncryptionVersion version}} value={{version}}>
<code>{{version}}</code>
</option>
{{/each}}
</select>
</div>
</div>
<p class="help">
The minimum version of the key that can be used to encrypt plaintext, sign payloads, or generate HMACs.
You will be able to specify which version of the key to use for each of these actions. The value specified here must be greater than or equal to that specified in the <b>Minimum Decryption Version</b> selection above.
</p>
</div>
</div>
<div class="field is-grouped is-grouped-split box is-fullwidth is-bottomless">
<div class="field is-grouped">
{{#if capabilities.canUpdate}}
<div class="control">
<button
type="submit"
disabled={{requestInFlight}}
class="button is-primary {{if requestInFlight 'is-loading'}}"
>
Update encryption key
</button>
</div>
{{/if}}
<div class="control">
{{#secret-link
mode="show"
secret=key.id
class="button"
}}
Cancel
{{/secret-link}}
</div>
</div>
{{#if (and key.canDelete capabilities.canDelete)}}
{{#confirm-action
buttonClasses="button"
onConfirmAction=(action "deleteKey")
confirmMessage=(concat "Are you sure you want to delete " key.id "?")
cancelButtonText="Cancel"
}}
Delete encryption key
{{/confirm-action}}
{{/if}}
</div>
</form>