Merge branch 'develop' into feature-stale-token-checking
This commit is contained in:
80 files changed
+339
-309
No files matched your search
@@ -1,6 +1,10 @@
|
||||
<Rose::Message @title={{t (concat "errors." this.messageCode ".title")}} @subtitle={{concat (t "errors.titles.error") " " this.status}} @icon={{this.icon}} as |message|>
|
||||
<Rose::Message
|
||||
@title={{t (concat "errors." this.messageCode ".title")}}
|
||||
@subtitle={{concat (t "errors.generic.title") " " this.status}}
|
||||
@icon={{this.icon}}
|
||||
as |message|>
|
||||
<message.description>{{t (concat "errors." this.messageCode ".description")}}</message.description>
|
||||
{{#if this.helpRoute}}
|
||||
<message.link @route={{this.helpRoute}}>{{t "actions.help"}}</message.link>
|
||||
{{/if}}
|
||||
</Rose::Message>
|
||||
</Rose::Message>
|
||||
@@ -10,7 +10,7 @@
|
||||
@name="currentPassword"
|
||||
@type="password"
|
||||
@value={{this.currentPassword}}
|
||||
@label={{t "form.label.current_password"}}
|
||||
@label={{t "form.current_password.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
autocomplete="current-password"
|
||||
@@ -28,7 +28,7 @@
|
||||
@name="newPassword"
|
||||
@type="password"
|
||||
@value={{this.newPassword}}
|
||||
@label={{t "form.label.new_password"}}
|
||||
@label={{t "form.new_password.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
autocomplete="new-password"
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
as |form|
|
||||
>
|
||||
<form.input
|
||||
@value={{t (concat 'account.types.' @model.type)}}
|
||||
@label={{t "form.label.type"}}
|
||||
@value={{t (concat 'resources.account.types.' @model.type)}}
|
||||
@label={{t "form.type.label"}}
|
||||
readonly={{true}}
|
||||
@disabled={{true}} />
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
@name="name"
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.label.name"}}
|
||||
@label={{t "form.name.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -32,7 +32,7 @@
|
||||
@name="description"
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.label.description"}}
|
||||
@label={{t "form.description.label"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
@@ -50,7 +50,7 @@
|
||||
@name="login_name"
|
||||
@type="text"
|
||||
@value={{@model.attributes.login_name}}
|
||||
@label={{t "form.label.identification"}}
|
||||
@label={{t "form.login_name.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -68,7 +68,7 @@
|
||||
@name="password"
|
||||
@type="password"
|
||||
@value={{this.password}}
|
||||
@label={{t "form.label.password"}}
|
||||
@label={{t "form.password.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
autocomplete="new-password"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
@name="password"
|
||||
@type="password"
|
||||
@value={{this.password}}
|
||||
@label={{t "form.label.password"}}
|
||||
@label={{t "form.password.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
autocomplete="new-password"
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
as |form|
|
||||
>
|
||||
<form.input
|
||||
@value={{t (concat 'auth.method-types.' @model.type)}}
|
||||
@label={{t "form.label.type"}}
|
||||
@value={{t (concat 'resources.auth-method.types.' @model.type)}}
|
||||
@label={{t "form.type.label"}}
|
||||
readonly={{true}}
|
||||
@disabled={{true}} />
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
@name="name"
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.label.name"}}
|
||||
@label={{t "form.name.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -32,7 +32,7 @@
|
||||
@name="description"
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.label.description"}}
|
||||
@label={{t "form.description.label"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
@@ -50,4 +50,4 @@
|
||||
@disabled={{if @model.cannotSave @model.cannotSave}}
|
||||
@submitText={{t "actions.save"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
</Rose::Form>
|
||||
</Rose::Form>
|
||||
@@ -15,8 +15,8 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
@name="name"
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.label.name"}}
|
||||
@label={{t "form.name.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -27,7 +27,7 @@
|
||||
@name="description"
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.label.description"}}
|
||||
@label={{t "form.description.label"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
@name="name"
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.label.name"}}
|
||||
@label={{t "form.name.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -27,7 +27,7 @@
|
||||
@name="description"
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.label.description"}}
|
||||
@label={{t "form.description.label"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.type"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.type.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
|
||||
@@ -25,9 +25,9 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.label.address'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.address.label'}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
<form.input
|
||||
@value={{t (concat 'host-set.types.' @model.type)}}
|
||||
@label={{t "form.label.type"}}
|
||||
@label={{t "form.type.label"}}
|
||||
readonly={{true}}
|
||||
@disabled={{true}} />
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
@name="name"
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.label.name"}}
|
||||
@label={{t "form.name.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -33,7 +33,7 @@
|
||||
@name="description"
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.label.description"}}
|
||||
@label={{t "form.description.label"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
<form.input
|
||||
@value={{t (concat 'host.types.' @model.type)}}
|
||||
@label={{t "form.label.type"}}
|
||||
@label={{t "form.type.label"}}
|
||||
readonly={{true}}
|
||||
@disabled={{true}} />
|
||||
|
||||
@@ -16,8 +16,9 @@
|
||||
@name="name"
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.label.name"}}
|
||||
@label={{t "form.name.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
@helperText={{t "form.name.help"}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
{{#if @model.errors.name}}
|
||||
@@ -33,8 +34,9 @@
|
||||
@name="description"
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.label.description"}}
|
||||
@label={{t "form.description.label"}}
|
||||
@error={{@model.errors.description}}
|
||||
@helperText={{t "form.description.help"}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -51,8 +53,9 @@
|
||||
@name="address"
|
||||
@type="text"
|
||||
@value={{@model.attributes.address}}
|
||||
@label={{t "form.label.address"}}
|
||||
@label={{t "form.address.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
@helperText={{t "form.address.help"}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
{{#if @model.errors.name}}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
@name="name"
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.label.name"}}
|
||||
@label={{t "form.name.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -27,7 +27,7 @@
|
||||
@name="description"
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.label.description"}}
|
||||
@label={{t "form.description.label"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
@name="name"
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.label.name"}}
|
||||
@label={{t "form.name.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -27,7 +27,7 @@
|
||||
@name="description"
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.label.description"}}
|
||||
@label={{t "form.description.label"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.label.type'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.type.label'}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<input.label>{{t "titles.new-grant"}}</input.label>
|
||||
</item.key>
|
||||
<item.cell>
|
||||
<input.field />
|
||||
<input.field title={{t "form.grant.help"}} />
|
||||
</item.cell>
|
||||
<item.cell>
|
||||
<Rose::Button
|
||||
@@ -63,10 +63,10 @@
|
||||
@error={{@model.errors.grants}}
|
||||
as |input|>
|
||||
<item.key>
|
||||
<input.label>{{t "form.label.grant"}}</input.label>
|
||||
<input.label>{{t "form.grant.label"}}</input.label>
|
||||
</item.key>
|
||||
<item.cell>
|
||||
<input.field />
|
||||
<input.field title={{t "form.grant.help"}} />
|
||||
</item.cell>
|
||||
</form.input>
|
||||
<item.cell>
|
||||
|
||||
@@ -10,8 +10,9 @@
|
||||
@name="name"
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.label.name"}}
|
||||
@label={{t "form.name.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
@helperText={{t "form.name.help"}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
{{#if @model.errors.name}}
|
||||
@@ -27,8 +28,9 @@
|
||||
@name="description"
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.label.description"}}
|
||||
@label={{t "form.description.label"}}
|
||||
@error={{@model.errors.description}}
|
||||
@helperText={{t "form.description.help"}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.label.type'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.type.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'resources.host-catalog'}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
<form.input
|
||||
@value={{t (concat 'target.types.' @model.type)}}
|
||||
@label={{t "form.label.type"}}
|
||||
@label={{t "form.type.label"}}
|
||||
readonly={{true}}
|
||||
@disabled={{true}} />
|
||||
|
||||
@@ -16,8 +16,9 @@
|
||||
@name="name"
|
||||
@type="text"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.label.name"}}
|
||||
@label={{t "form.name.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
@helperText={{t "form.name.help"}}
|
||||
as |field|>
|
||||
{{#if @model.errors.name}}
|
||||
<field.errors as |errors|>
|
||||
@@ -32,8 +33,9 @@
|
||||
@name="description"
|
||||
@type="text"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.label.description"}}
|
||||
@label={{t "form.description.label"}}
|
||||
@error={{@model.errors.description}}
|
||||
@helperText={{t "form.description.help"}}
|
||||
as |field|>
|
||||
{{#if @model.errors.description}}
|
||||
<field.errors as |errors|>
|
||||
@@ -49,8 +51,9 @@
|
||||
@name="default_port"
|
||||
@type="number"
|
||||
@value={{@model.attributes.default_port}}
|
||||
@label={{t "form.label.default_port"}}
|
||||
@label={{t "form.default_port.label"}}
|
||||
@error={{@model.errors.default_port}}
|
||||
@helperText={{t "form.default_port.help"}}
|
||||
min="0"
|
||||
step="1"
|
||||
as |field|>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
@name="name"
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.label.name"}}
|
||||
@label={{t "form.name.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -27,7 +27,7 @@
|
||||
@name="description"
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.label.description"}}
|
||||
@label={{t "form.description.label"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
|
||||
@@ -13,6 +13,6 @@ export default class ScopesScopeAuthMethodsController extends Controller {
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.auth-methods');
|
||||
return this.intl.t('resources.auth-method.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,6 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsController extends
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.accounts');
|
||||
return this.intl.t('resources.account.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -42,7 +42,7 @@ export default class AccountChangePasswordRoute extends Route {
|
||||
// redirects may abort this initial transition, resulting in a
|
||||
// TransitionAborted error, which we do not want to show to the user.
|
||||
await this.replaceWith('index').catch(() => {});
|
||||
this.notify.success(this.intl.t('notify.save-success'));
|
||||
this.notify.success(this.intl.t('notifications.save-success'));
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
this.notify.error(error.message, { closeAfter: null });
|
||||
|
||||
@@ -54,7 +54,7 @@ export default class ScopesScopeAuthMethodsRoute extends Route {
|
||||
);
|
||||
this.refresh();
|
||||
this.notify.success(
|
||||
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
|
||||
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
|
||||
);
|
||||
} catch (error) {
|
||||
//TODO: replace with translated strings
|
||||
@@ -72,7 +72,7 @@ export default class ScopesScopeAuthMethodsRoute extends Route {
|
||||
await authMethod.destroyRecord();
|
||||
await this.transitionTo('scopes.scope.auth-methods');
|
||||
this.refresh();
|
||||
this.notify.success(this.intl.t('notify.delete-success'));
|
||||
this.notify.success(this.intl.t('notifications.delete-success'));
|
||||
} catch (error) {
|
||||
//TODO: replace with translated strings
|
||||
this.notify.error(error.message, { closeAfter: null });
|
||||
|
||||
@@ -54,7 +54,7 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsRoute extends Route
|
||||
);
|
||||
this.refresh();
|
||||
this.notify.success(
|
||||
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
|
||||
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
|
||||
);
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
@@ -72,7 +72,7 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsRoute extends Route
|
||||
await account.destroyRecord();
|
||||
await this.transitionTo('scopes.scope.auth-methods.auth-method.accounts');
|
||||
this.refresh();
|
||||
this.notify.success(this.intl.t('notify.delete-success'));
|
||||
this.notify.success(this.intl.t('notifications.delete-success'));
|
||||
} catch (error) {
|
||||
//TODO: replace with translated strings
|
||||
this.notify.error(error.message, { closeAfter: null });
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ export default class ScopesScopeAuthMethodsAuthMethodAccountsAccountSettingsRout
|
||||
await this.replaceWith(
|
||||
'scopes.scope.auth-methods.auth-method.accounts.account.set-password'
|
||||
);
|
||||
this.notify.success(this.intl.t('notify.save-success'));
|
||||
this.notify.success(this.intl.t('notifications.save-success'));
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
this.notify.error(error.message, { closeAfter: null });
|
||||
|
||||
@@ -57,7 +57,7 @@ export default class ScopesScopeAuthenticateMethodRoute extends Route {
|
||||
this.transitionTo('scopes.scope.projects');
|
||||
}
|
||||
} catch (e) {
|
||||
const errorMessage = this.intl.t('errors.titles.authentication-failed');
|
||||
const errorMessage = this.intl.t('errors.authentication-failed.title');
|
||||
this.notify.error(errorMessage, { closeAfter: null });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ export default class ScopesScopeGroupsRoute extends Route {
|
||||
await group.save();
|
||||
this.refresh();
|
||||
this.notify.success(
|
||||
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
|
||||
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
|
||||
);
|
||||
this.transitionTo('scopes.scope.groups.group', group);
|
||||
} catch (error) {
|
||||
@@ -68,7 +68,7 @@ export default class ScopesScopeGroupsRoute extends Route {
|
||||
try {
|
||||
await group.destroyRecord();
|
||||
this.refresh();
|
||||
this.notify.success(this.intl.t('notify.delete-success'));
|
||||
this.notify.success(this.intl.t('notifications.delete-success'));
|
||||
this.transitionTo('scopes.scope.groups');
|
||||
} catch (error) {
|
||||
//TODO: replace with translated strings
|
||||
|
||||
@@ -67,7 +67,7 @@ export default class ScopesScopeGroupsGroupAddMembersRoute extends Route {
|
||||
try {
|
||||
await group.addMembers(userIDs);
|
||||
await this.replaceWith('scopes.scope.groups.group.members');
|
||||
this.notify.success(this.intl.t('notify.save-success'));
|
||||
this.notify.success(this.intl.t('notifications.add-success'));
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
this.notify.error(error.message, { closeAfter: null });
|
||||
|
||||
@@ -40,7 +40,7 @@ export default class ScopesScopeGroupsGroupMembersRoute extends Route {
|
||||
try {
|
||||
await group.removeMember(member.id);
|
||||
await this.refresh();
|
||||
this.notify.success(this.intl.t('notify.delete-success'));
|
||||
this.notify.success(this.intl.t('notifications.remove-success'));
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
this.notify.error(error.message, { closeAfter: null });
|
||||
|
||||
@@ -51,7 +51,7 @@ export default class ScopesScopeOrgsRoute extends Route {
|
||||
await org.save();
|
||||
this.refresh();
|
||||
this.notify.success(
|
||||
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
|
||||
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
|
||||
);
|
||||
this.transitionTo('scopes.scope', org);
|
||||
} catch (error) {
|
||||
|
||||
@@ -66,7 +66,7 @@ export default class ScopesScopeProjectsRoute extends Route {
|
||||
await project.save();
|
||||
this.refresh();
|
||||
this.notify.success(
|
||||
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
|
||||
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
|
||||
);
|
||||
this.transitionTo('scopes.scope.projects.project', project);
|
||||
} catch (error) {
|
||||
@@ -84,7 +84,7 @@ export default class ScopesScopeProjectsRoute extends Route {
|
||||
try {
|
||||
await project.destroyRecord();
|
||||
this.refresh();
|
||||
this.notify.success('notify.delete-success');
|
||||
this.notify.success(this.intl.t('notifications.delete-success'));
|
||||
this.transitionTo('scopes.scope.projects');
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
|
||||
@@ -44,7 +44,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsRoute extends Route {
|
||||
await hostCatalog.save();
|
||||
this.refresh();
|
||||
this.notify.success(
|
||||
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
|
||||
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
|
||||
);
|
||||
this.transitionTo(
|
||||
'scopes.scope.projects.project.host-catalogs.host-catalog',
|
||||
@@ -65,7 +65,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsRoute extends Route {
|
||||
try {
|
||||
await project.destroyRecord();
|
||||
this.refresh();
|
||||
this.notify.success(this.intl.t('notify.delete-success'));
|
||||
this.notify.success(this.intl.t('notifications.delete-success'));
|
||||
this.transitionTo('scopes.scope.projects.project.host-catalogs');
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
|
||||
+2
-2
@@ -53,7 +53,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsHostCatalogHostSetsRo
|
||||
);
|
||||
await this.refresh();
|
||||
this.notify.success(
|
||||
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
|
||||
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
|
||||
);
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
@@ -69,7 +69,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsHostCatalogHostSetsRo
|
||||
async delete(hostSet) {
|
||||
try {
|
||||
await hostSet.destroyRecord();
|
||||
this.notify.success(this.intl.t('notify.delete-success'));
|
||||
this.notify.success(this.intl.t('notifications.delete-success'));
|
||||
this.transitionTo(
|
||||
'scopes.scope.projects.project.host-catalogs.host-catalog.host-sets'
|
||||
);
|
||||
|
||||
+1
-1
@@ -93,7 +93,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsHostCatalogHostSetsHo
|
||||
await this.replaceWith(
|
||||
'scopes.scope.projects.project.host-catalogs.host-catalog.host-sets.host-set.hosts'
|
||||
);
|
||||
this.notify.success(this.intl.t('notify.save-success'));
|
||||
this.notify.success(this.intl.t('notifications.add-success'));
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
this.notify.error(error.message, { closeAfter: null });
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsHostCatalogHostSetsHo
|
||||
adapterOptions: { scopeID, hostCatalogID },
|
||||
});
|
||||
this.refresh();
|
||||
this.notify.success(this.intl.t('notify.delete-success'));
|
||||
this.notify.success(this.intl.t('notifications.remove-success'));
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
this.notify.error(error.message, { closeAfter: null });
|
||||
|
||||
+2
-2
@@ -53,7 +53,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsHostCatalogHostsRoute
|
||||
);
|
||||
await this.refresh();
|
||||
this.notify.success(
|
||||
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
|
||||
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
|
||||
);
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
@@ -70,7 +70,7 @@ export default class ScopesScopeProjectsProjectHostCatalogsHostCatalogHostsRoute
|
||||
try {
|
||||
await host.destroyRecord();
|
||||
this.refresh();
|
||||
this.notify.success(this.intl.t('notify.delete-success'));
|
||||
this.notify.success(this.intl.t('notifications.delete-success'));
|
||||
this.transitionTo(
|
||||
'scopes.scope.projects.project.host-catalogs.host-catalog.hosts'
|
||||
);
|
||||
|
||||
@@ -75,7 +75,7 @@ export default class ScopesScopeProjectsProjectSessionsRoute extends Route {
|
||||
async cancelSession(session) {
|
||||
try {
|
||||
await session.cancelSession();
|
||||
this.notify.success(this.intl.t('notify.session-canceled'));
|
||||
this.notify.success(this.intl.t('notifications.canceled-success'));
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
this.notify.error(error.message, { closeAfter: null });
|
||||
|
||||
@@ -44,7 +44,7 @@ export default class ScopesScopeProjectsProjectTargetsRoute extends Route {
|
||||
await target.save();
|
||||
this.refresh();
|
||||
this.notify.success(
|
||||
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
|
||||
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
|
||||
);
|
||||
this.transitionTo('scopes.scope.projects.project.targets.target', target);
|
||||
} catch (error) {
|
||||
@@ -62,7 +62,7 @@ export default class ScopesScopeProjectsProjectTargetsRoute extends Route {
|
||||
try {
|
||||
await target.destroyRecord();
|
||||
this.refresh();
|
||||
this.notify.success(this.intl.t('notify.delete-success'));
|
||||
this.notify.success(this.intl.t('notifications.delete-success'));
|
||||
this.transitionTo('scopes.scope.projects.project.targets');
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
|
||||
@@ -76,7 +76,7 @@ export default class ScopesScopeProjectsProjectTargetsTargetAddHostSetsRoute ext
|
||||
this.replaceWith(
|
||||
'scopes.scope.projects.project.targets.target.host-sets'
|
||||
);
|
||||
this.notify.success(this.intl.t('notify.save-success'));
|
||||
this.notify.success(this.intl.t('notifications.add-success'));
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
this.notify.error(error.message, { closeAfter: null });
|
||||
|
||||
@@ -57,7 +57,7 @@ export default class ScopesScopeProjectsProjectTargetsTargetHostSetsRoute extend
|
||||
try {
|
||||
await target.removeHostSet(hostSet.id);
|
||||
this.refresh();
|
||||
this.notify.success(this.intl.t('notify.delete-success'));
|
||||
this.notify.success(this.intl.t('notifications.remove-success'));
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
this.notify.error(error.message, { closeAfter: null });
|
||||
|
||||
@@ -50,7 +50,7 @@ export default class ScopesScopeRolesRoute extends Route {
|
||||
await role.save();
|
||||
this.refresh();
|
||||
this.notify.success(
|
||||
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
|
||||
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
|
||||
);
|
||||
this.transitionTo('scopes.scope.roles.role', role);
|
||||
} catch (error) {
|
||||
@@ -68,7 +68,7 @@ export default class ScopesScopeRolesRoute extends Route {
|
||||
try {
|
||||
await role.destroyRecord();
|
||||
this.refresh();
|
||||
this.notify.success(this.intl.t('notify.delete-success'));
|
||||
this.notify.success(this.intl.t('notifications.delete-success'));
|
||||
this.transitionTo('scopes.scope.roles');
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
|
||||
@@ -61,7 +61,7 @@ export default class ScopesScopeRolesRoleAddPrincipalsRoute extends Route {
|
||||
try {
|
||||
await role.addPrincipals(principalIDs);
|
||||
this.replaceWith('scopes.scope.roles.role.principals');
|
||||
this.notify.success(this.intl.t('notify.save-success'));
|
||||
this.notify.success(this.intl.t('notifications.add-success'));
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
this.notify.error(error.message, { closeAfter: null });
|
||||
|
||||
@@ -57,7 +57,7 @@ export default class ScopesScopeRolesRoleGrantsRoute extends Route {
|
||||
async save(role) {
|
||||
try {
|
||||
await role.saveGrants();
|
||||
this.notify.success(this.intl.t('notify.save-success'));
|
||||
this.notify.success(this.intl.t('notifications.save-success'));
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
this.notify.error(error.message, { closeAfter: null });
|
||||
|
||||
@@ -65,7 +65,7 @@ export default class ScopesScopeRolesRolePrincipalsRoute extends Route {
|
||||
const role = this.modelFor('scopes.scope.roles.role');
|
||||
await role.removePrincipal(principal.id);
|
||||
this.refresh();
|
||||
this.notify.success(this.intl.t('notify.delete-success'));
|
||||
this.notify.success(this.intl.t('notifications.remove-success'));
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
this.notify.error(error.message, { closeAfter: null });
|
||||
|
||||
@@ -51,7 +51,7 @@ export default class ScopesScopeUsersRoute extends Route {
|
||||
await user.save();
|
||||
this.refresh();
|
||||
this.notify.success(
|
||||
this.intl.t(isNew ? 'notify.create-success' : 'notify.save-success')
|
||||
this.intl.t(isNew ? 'notifications.create-success' : 'notifications.save-success')
|
||||
);
|
||||
this.transitionTo('scopes.scope.users.user', user);
|
||||
} catch (error) {
|
||||
@@ -69,7 +69,7 @@ export default class ScopesScopeUsersRoute extends Route {
|
||||
try {
|
||||
await user.destroyRecord();
|
||||
this.refresh();
|
||||
this.notify.success(this.intl.t('notify.delete-success'));
|
||||
this.notify.success(this.intl.t('notifications.delete-success'));
|
||||
this.transitionTo('scopes.scope.users');
|
||||
} catch (error) {
|
||||
// TODO: replace with translated strings
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
{{t "resources.roles"}}
|
||||
</nav.link>
|
||||
<nav.link @route="scopes.scope.auth-methods">
|
||||
{{t "resources.auth-methods"}}
|
||||
{{t "resources.auth-method.title_plural"}}
|
||||
</nav.link>
|
||||
</Rose::Nav::Sidebar>
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
@route="scopes.scope.auth-methods.auth-method.accounts.new"
|
||||
@model={{@model}}
|
||||
>
|
||||
{{t "actions.add-account"}}
|
||||
{{t "resources.account.actions.create"}}
|
||||
</dropdown.link>
|
||||
<dropdown.button
|
||||
@style="danger"
|
||||
@disabled={{@model.canSave}}
|
||||
{{on "click" (route-action "delete" @model)}}
|
||||
>
|
||||
{{t 'actions.delete-auth-method'}}
|
||||
{{t 'resources.auth-method.actions.delete'}}
|
||||
</dropdown.button>
|
||||
</Rose::Dropdown>
|
||||
</Rose::Dropdown>
|
||||
@@ -1,2 +1,2 @@
|
||||
<h2>{{t "resources.auth-method"}}</h2>
|
||||
<p>{{t "resources.descriptions.auth-method"}}</p>
|
||||
<h2>{{t "resources.auth-method.title"}}</h2>
|
||||
<p>{{t "resources.auth-method.description"}}</p>
|
||||
@@ -3,6 +3,6 @@
|
||||
{{t 'titles.details'}}
|
||||
</nav.link>
|
||||
<nav.link @route='scopes.scope.auth-methods.auth-method.accounts'>
|
||||
{{t 'titles.accounts'}}
|
||||
{{t 'resources.account.title_plural'}}
|
||||
</nav.link>
|
||||
</Rose::Nav::Tabs>
|
||||
</Rose::Nav::Tabs>
|
||||
@@ -1,3 +1,3 @@
|
||||
{{title (t 'titles.accounts')}}
|
||||
{{title (t 'resources.account.title_plural')}}
|
||||
|
||||
{{outlet}}
|
||||
+2
-2
@@ -4,6 +4,6 @@
|
||||
@disabled={{@model.canSave}}
|
||||
{{on "click" (route-action "delete" @model)}}
|
||||
>
|
||||
{{t 'actions.delete-account'}}
|
||||
{{t 'actions.delete'}}
|
||||
</dropdown.button>
|
||||
</Rose::Dropdown>
|
||||
</Rose::Dropdown>
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<h2>{{t "resources.account"}}</h2>
|
||||
<h2>{{t "resources.account.title"}}</h2>
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
<h2>{{t "resources.account"}}</h2>
|
||||
<p>{{t 'descriptions.account-set-password'}}</p>
|
||||
<h2>{{t "resources.account.title"}}</h2>
|
||||
<p>{{t 'resources.account.messages.set-password.description'}}</p>
|
||||
@@ -3,9 +3,9 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.label.identification'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.login_name.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
@@ -34,11 +34,11 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t "titles.accounts-welcome"}} as |message|>
|
||||
<Rose::Message @title={{t "resources.account.messages.welcome.title"}} as |message|>
|
||||
<message.description>
|
||||
{{t "descriptions.accounts-welcome"}}
|
||||
{{t "resources.account.messages.welcome.description"}}
|
||||
</message.description>
|
||||
</Rose::Message>
|
||||
</Rose::Layout::Centered>
|
||||
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
@@ -1,7 +1,7 @@
|
||||
<Rose::Layout::Page as |page|>
|
||||
<page.header>
|
||||
<h2>{{t "resources.auth-methods"}}</h2>
|
||||
<p>{{t "resources.descriptions.auth-methods"}}</p>
|
||||
<h2>{{t "resources.auth-method.title_plural"}}</h2>
|
||||
<p>{{t "resources.auth-method.description"}}</p>
|
||||
</page.header>
|
||||
|
||||
<page.breadcrumbs>
|
||||
@@ -22,9 +22,9 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.label.type'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.type.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
</row.headerCell>
|
||||
<row.cell>
|
||||
<Rose::Badge>
|
||||
{{t (concat 'auth.method-types.' authMethod.type)}}
|
||||
{{t (concat 'resources.auth-method.types.' authMethod.type)}}
|
||||
</Rose::Badge>
|
||||
</row.cell>
|
||||
<row.cell>
|
||||
@@ -56,9 +56,9 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t 'titles.auth-methods-welcome'}} as |message|>
|
||||
<Rose::Message @title={{t 'resources.auth-method.messages.welcome.title'}} as |message|>
|
||||
<message.description>
|
||||
{{t 'descriptions.auth-methods-welcome'}}
|
||||
{{t 'resources.auth-method.messages.welcome.description'}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.auth-methods.new">
|
||||
<Rose::Icon @name="plus-circle-outline" />
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<Rose::Nav::Tabs as |nav|>
|
||||
{{#each @model.authMethods as |authMethod|}}
|
||||
<nav.link @route="scopes.scope.authenticate.method" @model={{authMethod.id}}>
|
||||
{{t (concat "auth.method-types." authMethod.type)}}
|
||||
{{t (concat "resources.auth-method.types." authMethod.type)}}
|
||||
</nav.link>
|
||||
{{/each}}
|
||||
</Rose::Nav::Tabs>
|
||||
@@ -39,11 +39,11 @@
|
||||
{{#unless @model.authMethods}}
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message
|
||||
@title={{t "auth.titles.no-methods"}}
|
||||
@title={{t "resources.auth-method.messages.none.title"}}
|
||||
@icon="alert-circle-outline"
|
||||
as |message|>
|
||||
<message.description>
|
||||
{{t "auth.descriptions.no-methods"}}
|
||||
{{t "resources.auth-method.messages.none.description"}}
|
||||
</message.description>
|
||||
</Rose::Message>
|
||||
</Rose::Layout::Centered>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{{#unless @model}}
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message
|
||||
@title={{t "auth.titles.no-methods"}}
|
||||
@title={{t "resources.auth-method.messages.none.title"}}
|
||||
@icon="alert-circle-outline"
|
||||
as |message|>
|
||||
<message.description>
|
||||
{{t "auth.descriptions.no-methods"}}
|
||||
{{t "resources.auth-method.messages.none.description"}}
|
||||
</message.description>
|
||||
</Rose::Message>
|
||||
</Rose::Layout::Centered>
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
@name="identification"
|
||||
@type="text"
|
||||
@value={{this.identification}}
|
||||
@label={{t "form.label.identification"}} />
|
||||
@label={{t "form.login_name.label"}} />
|
||||
|
||||
<form.input
|
||||
@name="password"
|
||||
@type="password"
|
||||
@value={{this.password}}
|
||||
@label={{t "form.label.password"}} />
|
||||
@label={{t "form.password.label"}} />
|
||||
|
||||
<form.actions
|
||||
@submitText={{t "actions.authenticate"}}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{{title (t "errors.titles.error") }}
|
||||
{{title (t "errors.generic.title") }}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
{{#each @model.errors as |error|}}
|
||||
<Error::Message @status={{error.status}}/>
|
||||
{{/each}}
|
||||
</Rose::Layout::Centered>
|
||||
</Rose::Layout::Centered>
|
||||
@@ -5,8 +5,8 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t "titles.actions"}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
|
||||
+3
-3
@@ -3,9 +3,9 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.type"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.type.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "titles.actions"}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
|
||||
+3
-3
@@ -3,9 +3,9 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.type"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.type.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
|
||||
+4
-4
@@ -3,10 +3,10 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.type"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.address"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.type.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.address.label"}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.type"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.type.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
|
||||
@@ -15,11 +15,11 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "resources.user"}}</row.headerCell>
|
||||
<row.headerCell>{{t "resources.target"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.started"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.status"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.started.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.status.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "titles.actions"}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.type"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.type.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.type"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.type.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "titles.actions"}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t 'form.label.name'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.label.type'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.label.id'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.type.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t "titles.actions"}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t "form.label.name"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.label.id"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.name.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
|
||||
@@ -47,7 +47,7 @@ module.exports = function (/* environment */) {
|
||||
* @type {Boolean}
|
||||
* @default "false"
|
||||
*/
|
||||
wrapTranslationsWithNamespace: false,
|
||||
wrapTranslationsWithNamespace: true,
|
||||
|
||||
/**
|
||||
* Cause a build error if ICU argument mismatches are detected.
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
add: Add
|
||||
cancel: Cancel
|
||||
delete: Delete
|
||||
remove: Remove
|
||||
dismiss: Dismiss
|
||||
save: Save
|
||||
manage: Manage
|
||||
help: Need help?
|
||||
back: Back
|
||||
authenticate: Authenticate
|
||||
deauthenticate: Deauthenticate
|
||||
choose-org: Choose Scope
|
||||
choose-different-org: Choose a Different Scope
|
||||
delete-user: Delete user
|
||||
delete-group: Delete group
|
||||
delete-role: Delete role
|
||||
delete-project: Delete project
|
||||
delete-host-catalog: Delete host catalog
|
||||
delete-host-set: Delete host set
|
||||
delete-host: Delete host
|
||||
delete-target: Delete target
|
||||
add-host-set: Create Host Set
|
||||
add-host: Create Host
|
||||
add-host-sets: Add Host Sets
|
||||
add-principals: Add Principals
|
||||
add-members: Add Members
|
||||
add-hosts: Add Hosts
|
||||
set-password: Set Password
|
||||
change-password: Change Password
|
||||
@@ -1,47 +1,10 @@
|
||||
actions:
|
||||
add: Add
|
||||
cancel: Cancel
|
||||
delete: Delete
|
||||
remove: Remove
|
||||
dismiss: Dismiss
|
||||
save: Save
|
||||
manage: Manage
|
||||
help: Need help?
|
||||
back: Back
|
||||
authenticate: Authenticate
|
||||
deauthenticate: Deauthenticate
|
||||
choose-org: Choose Scope
|
||||
choose-different-org: Choose a Different Scope
|
||||
delete-user: Delete user
|
||||
delete-group: Delete group
|
||||
delete-role: Delete role
|
||||
delete-project: Delete project
|
||||
delete-host-catalog: Delete host catalog
|
||||
delete-auth-method: Delete auth method
|
||||
delete-host-set: Delete host set
|
||||
delete-host: Delete host
|
||||
delete-target: Delete target
|
||||
delete-account: Delete account
|
||||
add-host-set: Create Host Set
|
||||
add-host: Create Host
|
||||
add-host-sets: Add Host Sets
|
||||
add-principals: Add Principals
|
||||
add-members: Add Members
|
||||
add-hosts: Add Hosts
|
||||
add-account: Create Account
|
||||
set-password: Set Password
|
||||
change-password: Change Password
|
||||
auth:
|
||||
titles:
|
||||
no-scopes: No Scopes Available
|
||||
no-methods: No Authentication Method
|
||||
descriptions:
|
||||
no-scopes: No scopes were found. To authenticate, ask your administrator to create an scope and grant you access.
|
||||
no-methods: No authentication methods were found for this scope. Switch scopes and try again.
|
||||
choose-org: Choose a scope to authenticate.
|
||||
authenticating-with-org: "You're authenticating with {name}."
|
||||
method-types:
|
||||
password: Password
|
||||
host-set:
|
||||
types:
|
||||
static: Static
|
||||
@@ -51,61 +14,6 @@ target:
|
||||
host:
|
||||
types:
|
||||
static: Static
|
||||
account:
|
||||
types:
|
||||
password: Password
|
||||
resources:
|
||||
user: User
|
||||
users: Users
|
||||
role: Role
|
||||
roles: Roles
|
||||
group: Group
|
||||
groups: Groups
|
||||
orgs: Orgs
|
||||
org: Org
|
||||
projects: Projects
|
||||
project: Project
|
||||
host-catalog: Host Catalog
|
||||
host-catalogs: Host Catalogs
|
||||
auth-method: Auth Method
|
||||
auth-methods: Auth Methods
|
||||
host-set: Host Set
|
||||
host-sets: Host Sets
|
||||
host: Host
|
||||
hosts: Hosts
|
||||
target: Target
|
||||
targets: Targets
|
||||
accounts: Accounts
|
||||
account: Account
|
||||
sessions: Sessions
|
||||
session: Session
|
||||
descriptions:
|
||||
user: A User inherits from Principal ("is-a" Principal) allowing it to be associated with zero or more Roles.
|
||||
users: A user is any entity authorized to access Boundary using authentication credentials specific to one of the configured Authentication Methods. A User is owned by one and only one Organization. A User is associated with zero or one Authentication Methods. A User not associated with an Authentication Method can not log in to the system. A User can belong to zero or more Groups. A User is deleted when the Organization it belongs to is deleted. The lifecycle of a User is not tied to the lifecycle of any Authentication Method, Group or Role, but rather to its Organization only.
|
||||
role: A Role can be assigned to zero or more Principals. A Principal assigned a Role receives all capabilities granted by any Direct Grant owned by the Role. A Role is deleted when the Scope it belongs to is deleted. All Direct Grants owned by a Role are deleted when the Role is deleted.
|
||||
roles: A role is a collection of capabilities granted to any Principal the Role is assigned to. A Role belongs to one and only one Scope. A Role owns zero or more Direct Grants. The lifecycle of a Role is not tied to the lifecycle of any Principal.
|
||||
grants: A grant represents a set of capabilities granted to a role. It couples a set of Actions to either a set of Resource Types or an individual Resource. A Direct Grant belongs exclusively to one and only one Role. However, equivalent Direct Grants may exist across different Roles. A Direct Grant references one or more Actions and either one or more Resource types or one specific Resource. A Direct Grant is deleted when the Role it belongs to is deleted. A Direct Grant is also deleted if it is associated with a specific Resource and that Resource itself is deleted. The lifecycle of a Direct Grant is not tied to the lifecycle of any Action or Resource Type.
|
||||
principals: A principal is any entity which can be assigned capabilities. Principal is abstract. User, Group, and Project are concrete Principals. A Principal can be assigned to zero or more Roles.
|
||||
group: All Users in a Group are granted the capabilities of all Roles the Group is associated with. A Group is deleted when the Scope it belongs to is deleted.
|
||||
groups: Groups are collections of Users used only for access control purposes. A Group is owned by one and only one Scope. A Group can contain zero or more Users. A Group inherits from Principal ("is-a" Principal) allowing it to be associated with zero or more Roles. The lifecycle of a Group is not tied to the lifecycle of any User or Role.
|
||||
org: When an Organization is deleted, all resources owned by it are also deleted.
|
||||
orgs: An Organization is a top-level container, and owns zero to many Projects and zero to many Authentication Methods. An Organization inherits from Scope ("is-a" Scope) allowing it to own zero to many Groups, Roles, Targets, or Host Catalogs. The lifecycle of an Organization is not tied to anything else. A Role at the Organization level can grant permissions at the Project level.
|
||||
project: When a Project is deleted, all resources owned by it are also deleted. The lifecycle of a Project is not tied to any resource it contains.
|
||||
projects: A project is a child scope of an organization and is owned by an Organization. A Project inherits from Scope ("is-a" Scope) allowing it to own zero to many Groups, Roles, Targets, or Host Catalogs. A Project also inherits from Principal ("is-a" Principal) allowing it to be associated with zero or more Roles. A Project has no additional relationships beyond those defined in Scope and Principal. A Project is deleted when the Organization it belongs to is deleted.
|
||||
host-catalog: A host catalog is a permission boundary modeled as a container.
|
||||
host-catalogs: A host catalog is a permission boundary modeled as a container.
|
||||
auth-method: An Authentication Method creates and references zero or more Users. An Authentication Method is deleted when the Organization it belongs to is deleted. The lifecycle of an Authentication Method is not tied to the lifecycle of any User.
|
||||
auth-methods: An authentication method is a method configured for an Organization to authenticate Users. An Authentication Method is owned by one and only one Organization.
|
||||
host-set: Host Set is abstract. A Host Set is deleted when the Host Catalog it belongs to is deleted.
|
||||
host-sets: A host set is a resource which provides a subset of Hosts from the set of Hosts of the Host Catalog it belongs to. A Host Set belongs to one and only one Host Catalog. A Host Set can contain zero or more Hosts. A Host Set can be contained by zero or more Targets. The lifecycle of a Host Set is not tied to the lifecycle of any Targets or Hosts.
|
||||
host: Host is abstract. A Host is deleted when the Host Catalog it belongs to is deleted.
|
||||
hosts: A host is a computing element with a network address reachable from Boundary. A Host belongs to one and only one Host Catalog. A Host can be contained by zero or more Host Sets. The lifecycle of a Host is not tied to the lifecycle of any Host Sets.
|
||||
target: Target is abstract. A Target is deleted when the Scope it belongs to is deleted.
|
||||
targets: A target is a networked service a User can connect to and interact with through Boundary. A Target does not directly contain any secrets. A Target contains a collection of Hosts. A Target belongs to one and only one Scope. A Target can contain zero or more Host Sets. The lifecycle of a Target is not tied to the lifecycle of any Host Set.
|
||||
accounts: Accounts
|
||||
account: Account
|
||||
sessions: Sessions
|
||||
session: Session
|
||||
titles:
|
||||
iam: IAM
|
||||
new: New
|
||||
@@ -123,7 +31,6 @@ titles:
|
||||
users-welcome: Welcome to Users
|
||||
roles-welcome: Welcome to Roles
|
||||
groups-welcome: Welcome to Groups
|
||||
auth-methods-welcome: Welcome to Auth Methods
|
||||
targets-welcome: Create your first Target
|
||||
target-host-sets-welcome: No Host Sets Associated
|
||||
grants: Permissions
|
||||
@@ -140,9 +47,6 @@ titles:
|
||||
members: Members
|
||||
group-members-welcome: Welcome to Members
|
||||
no-available-users: No Users Available
|
||||
accounts: Accounts
|
||||
account: Account
|
||||
accounts-welcome: Welcome to Accounts
|
||||
no-sessions: No Active Sessions
|
||||
actions: Actions
|
||||
descriptions:
|
||||
@@ -156,7 +60,6 @@ descriptions:
|
||||
users-welcome: Users are authorized to access Boundary.
|
||||
roles-welcome: Roles are collections of capabilities that can be granted to user and/or groups.
|
||||
groups-welcome: Groups are collections of users.
|
||||
auth-methods-welcome: Auth methods are configurations to authenticate users.
|
||||
targets-welcome: Targets provide Users the means to connect to and interact networked services. A Target contains a collection of Hosts and a collection of Credentials.
|
||||
target-host-sets-welcome: Add Host Sets to this target to provide access.
|
||||
no-host-set-hosts: Before associating hosts with this host set, create hosts within the host catalog.
|
||||
@@ -165,53 +68,4 @@ descriptions:
|
||||
no-principals-available: Principals are not available for assignment.
|
||||
group-members-welcome: Users belonging to this group appear here.
|
||||
no-available-users: No users are available to add to this group.
|
||||
account-set-password: Set a password for the account.
|
||||
accounts-welcome: No accounts are available in this auth method.
|
||||
no-sessions: There are no active sessions at this time.
|
||||
states:
|
||||
info: Info
|
||||
success: Success
|
||||
warning: Warning
|
||||
error: Error
|
||||
form:
|
||||
label:
|
||||
id: ID
|
||||
name: Name
|
||||
description: Description
|
||||
type: Type
|
||||
identification: Username
|
||||
password: Password
|
||||
grant: Grant
|
||||
principal: Principal
|
||||
address: Address
|
||||
protocol: Protocol
|
||||
actions: Actions
|
||||
default_port: Default Port
|
||||
current_password: Current Password
|
||||
new_password: New Password
|
||||
started: Started
|
||||
status: Status
|
||||
errors:
|
||||
401:
|
||||
title: You are not signed in
|
||||
description: You are not authenticated. Please authenticate and try again later.
|
||||
403:
|
||||
title: You are not authorized
|
||||
description: You must be granted permissions to view this data. Ask your administrator if you think you should have access.
|
||||
404:
|
||||
title: Resource not found
|
||||
description: We could not find the requested resource. You can ask your administrator or try again later.
|
||||
500:
|
||||
title: Server error
|
||||
description: We ran into a problem and could not continue. You can ask your administrator or try again later.
|
||||
unknown:
|
||||
title: Something went wrong
|
||||
description: Please contact your administrator or try again later.
|
||||
titles:
|
||||
authentication-failed: Authentication Failed
|
||||
error: Error
|
||||
notify:
|
||||
create-success: Created succesfully.
|
||||
save-success: Saved succesfully.
|
||||
delete-success: Deleted successfully.
|
||||
session-canceled: Session canceled.
|
||||
@@ -0,0 +1,19 @@
|
||||
401:
|
||||
title: You are not signed in
|
||||
description: You are not authenticated. Please authenticate and try again later.
|
||||
403:
|
||||
title: You are not authorized
|
||||
description: You must be granted permissions to view this data. Ask your administrator if you think you should have access.
|
||||
404:
|
||||
title: Resource not found
|
||||
description: We could not find the requested resource. You can ask your administrator or try again later.
|
||||
500:
|
||||
title: Server error
|
||||
description: We ran into a problem and could not continue. You can ask your administrator or try again later.
|
||||
unknown:
|
||||
title: Something went wrong
|
||||
description: Please contact your administrator or try again later.
|
||||
generic:
|
||||
title: Error
|
||||
authentication-failed:
|
||||
title: Authentication Failed
|
||||
@@ -0,0 +1,31 @@
|
||||
id:
|
||||
label: ID
|
||||
name:
|
||||
label: Name
|
||||
help: Optional name for identification purposes
|
||||
description:
|
||||
label: Description
|
||||
help: Optional description for identification purposes
|
||||
type:
|
||||
label: Type
|
||||
help: The type of the resource, to help differentiate schemas
|
||||
login_name:
|
||||
label: Username
|
||||
password:
|
||||
label: Password
|
||||
grant:
|
||||
label: Grant
|
||||
help: A permissions grant string for a role
|
||||
address:
|
||||
label: Address
|
||||
help: An IP, host name, or other routable address
|
||||
default_port:
|
||||
label: Default Port
|
||||
current_password:
|
||||
label: Current Password
|
||||
new_password:
|
||||
label: New Password
|
||||
started:
|
||||
label: Started
|
||||
status:
|
||||
label: Status
|
||||
@@ -0,0 +1,6 @@
|
||||
create-success: Created succesfully.
|
||||
save-success: Saved succesfully.
|
||||
delete-success: Deleted successfully.
|
||||
add-success: Added successfully.
|
||||
remove-success: Removed successfully.
|
||||
canceled-success: Canceled successfully.
|
||||
@@ -0,0 +1,74 @@
|
||||
account:
|
||||
title: Account
|
||||
title_plural: Accounts
|
||||
description: Accounts associate an IAM user with an auth method
|
||||
messages:
|
||||
welcome:
|
||||
title: Welcome to Accounts
|
||||
description: Create and manage accounts for an auth method.
|
||||
set-password:
|
||||
description: Set a password for the account.
|
||||
types:
|
||||
password: Password
|
||||
actions:
|
||||
create: Create Account
|
||||
delete: Delete Account
|
||||
auth-method:
|
||||
title: Auth Method
|
||||
title_plural: Auth Methods
|
||||
description: An authentication method is a method configured for an Organization to authenticate Users. An Authentication Method is owned by one and only one Organization.
|
||||
messages:
|
||||
welcome:
|
||||
title: Welcome to Auth Methods
|
||||
description: Auth methods are configurations to authenticate users.
|
||||
none:
|
||||
title: No Authentication Methods
|
||||
description: No authentication methods were found for this scope. Switch scopes and try again.
|
||||
types:
|
||||
password: Password
|
||||
actions:
|
||||
create: Create Auth Method
|
||||
delete: Delete Auth Method
|
||||
user: User
|
||||
users: Users
|
||||
role: Role
|
||||
roles: Roles
|
||||
group: Group
|
||||
groups: Groups
|
||||
orgs: Orgs
|
||||
org: Org
|
||||
projects: Projects
|
||||
project: Project
|
||||
host-catalog: Host Catalog
|
||||
host-catalogs: Host Catalogs
|
||||
host-set: Host Set
|
||||
host-sets: Host Sets
|
||||
host: Host
|
||||
hosts: Hosts
|
||||
target: Target
|
||||
targets: Targets
|
||||
sessions: Sessions
|
||||
session: Session
|
||||
descriptions:
|
||||
user: A User inherits from Principal ("is-a" Principal) allowing it to be associated with zero or more Roles.
|
||||
users: A user is any entity authorized to access Boundary using authentication credentials specific to one of the configured Authentication Methods. A User is owned by one and only one Organization. A User is associated with zero or one Authentication Methods. A User not associated with an Authentication Method can not log in to the system. A User can belong to zero or more Groups. A User is deleted when the Organization it belongs to is deleted. The lifecycle of a User is not tied to the lifecycle of any Authentication Method, Group or Role, but rather to its Organization only.
|
||||
role: A Role can be assigned to zero or more Principals. A Principal assigned a Role receives all capabilities granted by any Direct Grant owned by the Role. A Role is deleted when the Scope it belongs to is deleted. All Direct Grants owned by a Role are deleted when the Role is deleted.
|
||||
roles: A role is a collection of capabilities granted to any Principal the Role is assigned to. A Role belongs to one and only one Scope. A Role owns zero or more Direct Grants. The lifecycle of a Role is not tied to the lifecycle of any Principal.
|
||||
grants: A grant represents a set of capabilities granted to a role. It couples a set of Actions to either a set of Resource Types or an individual Resource. A Direct Grant belongs exclusively to one and only one Role. However, equivalent Direct Grants may exist across different Roles. A Direct Grant references one or more Actions and either one or more Resource types or one specific Resource. A Direct Grant is deleted when the Role it belongs to is deleted. A Direct Grant is also deleted if it is associated with a specific Resource and that Resource itself is deleted. The lifecycle of a Direct Grant is not tied to the lifecycle of any Action or Resource Type.
|
||||
principals: A principal is any entity which can be assigned capabilities. Principal is abstract. User, Group, and Project are concrete Principals. A Principal can be assigned to zero or more Roles.
|
||||
group: All Users in a Group are granted the capabilities of all Roles the Group is associated with. A Group is deleted when the Scope it belongs to is deleted.
|
||||
groups: Groups are collections of Users used only for access control purposes. A Group is owned by one and only one Scope. A Group can contain zero or more Users. A Group inherits from Principal ("is-a" Principal) allowing it to be associated with zero or more Roles. The lifecycle of a Group is not tied to the lifecycle of any User or Role.
|
||||
org: When an Organization is deleted, all resources owned by it are also deleted.
|
||||
orgs: An Organization is a top-level container, and owns zero to many Projects and zero to many Authentication Methods. An Organization inherits from Scope ("is-a" Scope) allowing it to own zero to many Groups, Roles, Targets, or Host Catalogs. The lifecycle of an Organization is not tied to anything else. A Role at the Organization level can grant permissions at the Project level.
|
||||
project: When a Project is deleted, all resources owned by it are also deleted. The lifecycle of a Project is not tied to any resource it contains.
|
||||
projects: A project is a child scope of an organization and is owned by an Organization. A Project inherits from Scope ("is-a" Scope) allowing it to own zero to many Groups, Roles, Targets, or Host Catalogs. A Project also inherits from Principal ("is-a" Principal) allowing it to be associated with zero or more Roles. A Project has no additional relationships beyond those defined in Scope and Principal. A Project is deleted when the Organization it belongs to is deleted.
|
||||
host-catalog: A host catalog is a permission boundary modeled as a container.
|
||||
host-catalogs: A host catalog is a permission boundary modeled as a container.
|
||||
host-set: Host Set is abstract. A Host Set is deleted when the Host Catalog it belongs to is deleted.
|
||||
host-sets: A host set is a resource which provides a subset of Hosts from the set of Hosts of the Host Catalog it belongs to. A Host Set belongs to one and only one Host Catalog. A Host Set can contain zero or more Hosts. A Host Set can be contained by zero or more Targets. The lifecycle of a Host Set is not tied to the lifecycle of any Targets or Hosts.
|
||||
host: Host is abstract. A Host is deleted when the Host Catalog it belongs to is deleted.
|
||||
hosts: A host is a computing element with a network address reachable from Boundary. A Host belongs to one and only one Host Catalog. A Host can be contained by zero or more Host Sets. The lifecycle of a Host is not tied to the lifecycle of any Host Sets.
|
||||
target: Target is abstract. A Target is deleted when the Scope it belongs to is deleted.
|
||||
targets: A target is a networked service a User can connect to and interact with through Boundary. A Target does not directly contain any secrets. A Target contains a collection of Hosts. A Target belongs to one and only one Scope. A Target can contain zero or more Host Sets. The lifecycle of a Target is not tied to the lifecycle of any Host Set.
|
||||
sessions: Sessions
|
||||
session: Session
|
||||
@@ -0,0 +1,4 @@
|
||||
info: Info
|
||||
success: Success
|
||||
warning: Warning
|
||||
error: Error
|
||||
Reference in new issue
Block a user