Files
threshold-ui/ui/admin/app/components/form/auth-method/ldap/index.hbs
T

586 lines
17 KiB
Handlebars

{{!
Copyright IBM Corp. 2021, 2026
SPDX-License-Identifier: BUSL-1.1
}}
<Rose::Form
@edit={{@edit}}
@onSubmit={{@submit}}
@cancel={{@cancel}}
@disabled={{@model.isSaving}}
@showEditToggle={{if @model.isNew false true}}
as |form|
>
<Hds::Form::TextInput::Field
@type='text'
@value={{@model.type}}
name='type'
disabled={{true}}
as |F|
>
<F.Label>{{t 'form.type.label'}}</F.Label>
</Hds::Form::TextInput::Field>
<Hds::Form::TextInput::Field
@isOptional={{true}}
@value={{@model.name}}
@type='text'
name='name'
disabled={{form.disabled}}
{{on 'input' (set-from-event @model 'name')}}
as |F|
>
<F.Label>{{t 'form.name.label'}}</F.Label>
<F.HelperText>{{t 'form.name.help'}}</F.HelperText>
</Hds::Form::TextInput::Field>
<Hds::Form::Textarea::Field
@isOptional={{true}}
@value={{@model.description}}
name='description'
disabled={{form.disabled}}
as |F|
>
<F.Label>{{t 'form.description.label'}}</F.Label>
<F.HelperText>{{t 'form.description.help'}}</F.HelperText>
</Hds::Form::Textarea::Field>
<div class='ldap-section'>
<Hds::Text::Display
@tag='h2'
@size='400'
@weight='bold'
class='remove-margin'
>
{{t 'resources.account.title'}}
{{t 'resources.auth-method.section.connection.title'}}
</Hds::Text::Display>
<Hds::Form::HelperText @controlId='for-connection'>{{t
'resources.auth-method.section.connection.help'
}}</Hds::Form::HelperText>
</div>
<Hds::Form::TextInput::Field
@isRequired={{true}}
@value={{this.urlsArrayString}}
@isInvalid={{@model.errors.urls}}
@type='url'
name='urls'
disabled={{form.disabled}}
{{on 'input' this.setUrls}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.urls.label'}}</F.Label>
<F.HelperText>{{t 'resources.auth-method.form.urls.help'}}</F.HelperText>
{{#if @model.errors.urls}}
<F.Error as |E|>
{{#each @model.errors.urls as |error|}}
<E.Message>{{error.message}}</E.Message>
{{/each}}
</F.Error>
{{/if}}
</Hds::Form::TextInput::Field>
<Form::Field::KeyValue
@name='certificates'
@model={{@model}}
@properties={{array 'value'}}
@data={{@model.certificates}}
@legend={{t 'resources.auth-method.form.certificates.label'}}
@helperText={{t 'resources.auth-method.form.certificates.help'}}
@disabled={{form.disabled}}
@isOptional={{true}}
>
<:row as |R|>
<R.Field as |F|>
<F.Textarea
data-test-value-input
@value={{R.rowData.value}}
{{on 'input' (fn R.updateRow 'value')}}
/>
</R.Field>
{{#if R.canDelete}}
<R.DeleteRowButton data-test-delete-button @onClick={{R.removeRow}} />
{{/if}}
</:row>
</Form::Field::KeyValue>
{{#if @model.isNew}}
<Hds::Form::TextInput::Field
@isOptional={{true}}
@value={{@model.client_certificate}}
@isInvalid={{@model.errors.client_certificate}}
@type='password'
name='client_certificate'
disabled={{form.disabled}}
@hasVisibilityToggle={{false}}
{{on 'input' (set-from-event @model 'client_certificate')}}
as |F|
>
<F.Label>
{{t 'resources.auth-method.form.client_certificate.label'}}
</F.Label>
<F.HelperText>
{{t 'resources.auth-method.form.client_certificate.help'}}
</F.HelperText>
{{#if @model.errors.client_certificate}}
<F.Error as |E|>
{{#each @model.errors.client_certificate as |error|}}
<E.Message>{{error.message}}</E.Message>
{{/each}}
</F.Error>
{{/if}}
</Hds::Form::TextInput::Field>
<Hds::Form::TextInput::Field
@isOptional={{true}}
@value={{@model.client_certificate_key}}
@isInvalid={{@model.errors.client_certificate_key}}
@type='password'
name='client_certificate_key'
disabled={{form.disabled}}
@hasVisibilityToggle={{false}}
{{on 'input' (set-from-event @model 'client_certificate_key')}}
as |F|
>
<F.Label>
{{t 'resources.auth-method.form.client_certificate_key.label'}}
</F.Label>
<F.HelperText>
{{t 'resources.auth-method.form.client_certificate_key.help'}}
</F.HelperText>
{{#if @model.errors.client_certificate_key}}
<F.Error as |E|>
{{#each @model.errors.client_certificate_key as |error|}}
<E.Message>{{error.message}}</E.Message>
{{/each}}
</F.Error>
{{/if}}
</Hds::Form::TextInput::Field>
{{else}}
<Form::Field::SecretInput
@isOptional={{true}}
@value={{@model.client_certificate_key}}
@isInvalid={{@model.errors.client_certificate_key}}
@name='client_certificate_key'
@isDisabled={{form.disabled}}
@showEditButton={{true}}
@cancel={{fn this.rollbackSecretAttrs 'client_certificate_key'}}
{{on 'input' (set-from-event @model 'client_certificate_key')}}
as |F|
>
<F.Label>{{t
'resources.auth-method.form.client_certificate_key.label'
}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.client_certificate_key.help'
}}</F.HelperText>
{{#if @model.errors.client_certificate_key}}
<F.Error as |E|>
{{#each @model.errors.client_certificate_key as |error|}}
<E.Message>{{error.message}}</E.Message>
{{/each}}
</F.Error>
{{/if}}
</Form::Field::SecretInput>
{{/if}}
<Hds::Form::Toggle::Field
name='start_tls'
checked={{@model.start_tls}}
disabled={{form.disabled}}
{{on 'change' this.toggleField}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.start_tls.label'}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.start_tls.help'
}}</F.HelperText>
</Hds::Form::Toggle::Field>
<Hds::Form::Toggle::Field
name='insecure_tls'
checked={{@model.insecure_tls}}
disabled={{form.disabled}}
{{on 'change' this.toggleField}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.insecure_tls.label'}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.insecure_tls.help'
}}</F.HelperText>
</Hds::Form::Toggle::Field>
<div class='ldap-section'>
<Hds::Text::Display
@tag='h2'
@size='400'
@weight='bold'
class='remove-margin'
>
{{t 'resources.account.title'}}
{{t 'resources.auth-method.section.authenticated-search.title'}}
</Hds::Text::Display>
<Hds::Form::HelperText @controlId='for-authenticated-search'>{{t
'resources.auth-method.section.authenticated-search.help'
}}</Hds::Form::HelperText>
</div>
<Hds::Form::TextInput::Field
@isOptional={{true}}
@value={{@model.bind_dn}}
@type='text'
name='bind_dn'
disabled={{form.disabled}}
{{on 'input' (set-from-event @model 'bind_dn')}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.bind_dn.label'}}</F.Label>
<F.HelperText>{{t 'resources.auth-method.form.bind_dn.help'}}</F.HelperText>
</Hds::Form::TextInput::Field>
{{#if @model.isNew}}
<Hds::Form::TextInput::Field
@isOptional={{true}}
@value={{@model.bind_password}}
@type='password'
name='bind_password'
disabled={{form.disabled}}
@hasVisibilityToggle={{false}}
{{on 'input' (set-from-event @model 'bind_password')}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.bind_password.label'}}</F.Label>
<F.HelperText>
{{t 'resources.auth-method.form.bind_password.help'}}
</F.HelperText>
</Hds::Form::TextInput::Field>
{{else}}
<Form::Field::SecretInput
@isOptional={{true}}
@value={{@model.bind_password}}
@isInvalid={{@model.errors.bind_password}}
@name='bind_password'
@isDisabled={{form.disabled}}
@showEditButton={{true}}
@cancel={{fn this.rollbackSecretAttrs 'bind_password'}}
{{on 'input' (set-from-event @model 'bind_password')}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.bind_password.label'}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.bind_password.help'
}}</F.HelperText>
{{#if @model.errors.bind_password}}
<F.Error as |E|>
{{#each @model.errors.bind_password as |error|}}
<E.Message>{{error.message}}</E.Message>
{{/each}}
</F.Error>
{{/if}}
</Form::Field::SecretInput>
{{/if}}
<Hds::Form::TextInput::Field
@isOptional={{true}}
@value={{@model.upn_domain}}
@type='text'
name='upn_domain'
disabled={{form.disabled}}
{{on 'input' (set-from-event @model 'upn_domain')}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.upn_domain.label'}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.upn_domain.help'
}}</F.HelperText>
</Hds::Form::TextInput::Field>
<div class='ldap-section'>
<Hds::Text::Display
@tag='h2'
@size='400'
@weight='bold'
class='remove-margin'
>
{{t 'resources.account.title'}}
{{t 'resources.auth-method.section.anonymous-search.title'}}
</Hds::Text::Display>
<Hds::Form::HelperText @controlId='for-anonymous-search'>{{t
'resources.auth-method.section.anonymous-search.help'
}}</Hds::Form::HelperText>
</div>
<Hds::Form::Toggle::Field
name='discover_dn'
checked={{@model.discover_dn}}
disabled={{form.disabled}}
{{on 'change' this.toggleField}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.discover_dn.label'}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.discover_dn.help'
}}</F.HelperText>
</Hds::Form::Toggle::Field>
<Hds::Form::Toggle::Field
name='anon_group_search'
checked={{@model.anon_group_search}}
disabled={{form.disabled}}
{{on 'change' this.toggleField}}
as |F|
>
<F.Label>{{t
'resources.auth-method.form.anon_group_search.label'
}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.anon_group_search.help'
}}</F.HelperText>
</Hds::Form::Toggle::Field>
<div class='ldap-section'>
<Hds::Text::Display
@tag='h2'
@size='400'
@weight='bold'
class='remove-margin'
>
{{t 'resources.account.title'}}
{{t 'resources.auth-method.section.user-entries.title'}}
</Hds::Text::Display>
<Hds::Form::HelperText @controlId='for-user-entries'>{{t
'resources.auth-method.section.user-entries.help'
}}</Hds::Form::HelperText>
</div>
<Hds::Form::TextInput::Field
@isOptional={{true}}
@value={{@model.user_dn}}
@type='text'
name='user_dn'
disabled={{form.disabled}}
{{on 'input' (set-from-event @model 'user_dn')}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.user_dn.label'}}</F.Label>
<F.HelperText>{{t 'resources.auth-method.form.user_dn.help'}}</F.HelperText>
</Hds::Form::TextInput::Field>
<Hds::Form::TextInput::Field
@isOptional={{true}}
@value={{@model.user_attr}}
@type='text'
name='user_attr'
disabled={{form.disabled}}
{{on 'input' (set-from-event @model 'user_attr')}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.user_attr.label'}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.user_attr.help'
}}</F.HelperText>
</Hds::Form::TextInput::Field>
<Hds::Form::TextInput::Field
@isOptional={{true}}
@value={{@model.user_filter}}
@type='text'
name='user_filter'
disabled={{form.disabled}}
{{on 'input' (set-from-event @model 'user_filter')}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.user_filter.label'}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.user_filter.help'
}}</F.HelperText>
</Hds::Form::TextInput::Field>
<Form::field::KeyValue
@name='account_attribute_maps'
@model={{@model}}
@properties={{array 'key' 'value'}}
@data={{@model.account_attribute_maps}}
@legend={{t 'resources.auth-method.form.account_attribute_maps.label'}}
@helperText={{t 'resources.auth-method.form.account_attribute_maps.help'}}
@disabled={{form.disabled}}
@isOptional={{true}}
>
<:row as |R|>
<R.Field as |F|>
<F.Label>{{t 'resources.auth-method.titles.from-attr'}}</F.Label>
<F.TextInput
data-test-key-input
@value={{R.rowData.key}}
{{on 'input' (fn R.updateRow 'key')}}
/>
</R.Field>
<R.Field as |F|>
<F.Label>{{t 'resources.auth-method.titles.to-attr'}}</F.Label>
<F.Select
data-test-value-select
{{on 'change' (fn R.updateRow 'value')}}
>
<option disabled hidden selected value=''>
{{t 'titles.choose-an-option'}}
</option>
{{#each this.toAttributes as |attr|}}
<option value={{attr}} selected={{eq R.rowData.value attr}}>
{{attr}}
</option>
{{/each}}
</F.Select>
</R.Field>
{{#if R.canDelete}}
<R.DeleteRowButton data-test-delete-button @onClick={{R.removeRow}} />
{{/if}}
</:row>
</Form::field::KeyValue>
<div class='ldap-section'>
<Hds::Text::Display
@tag='h2'
@size='400'
@weight='bold'
class='remove-margin'
>
{{t 'resources.account.title'}}
{{t 'resources.auth-method.section.group-entries.title'}}
</Hds::Text::Display>
<Hds::Form::HelperText @controlId='for-group-entries'>{{t
'resources.auth-method.section.group-entries.help'
}}</Hds::Form::HelperText>
</div>
<Hds::Form::TextInput::Field
@isOptional={{true}}
@value={{@model.group_dn}}
@isInvalid={{@model.errors.group_dn}}
@type='text'
name='group_dn'
disabled={{form.disabled}}
{{on 'input' (set-from-event @model 'group_dn')}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.group_dn.label'}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.group_dn.help'
}}</F.HelperText>
{{#if @model.errors.group_dn}}
<F.Error as |E|>
{{#each @model.errors.group_dn as |error|}}
<E.Message>{{error.message}}</E.Message>
{{/each}}
</F.Error>
{{/if}}
</Hds::Form::TextInput::Field>
<Hds::Form::TextInput::Field
@isOptional={{true}}
@value={{@model.group_attr}}
@type='text'
name='group_attr'
disabled={{form.disabled}}
{{on 'input' (set-from-event @model 'group_attr')}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.group_attr.label'}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.group_attr.help'
}}</F.HelperText>
</Hds::Form::TextInput::Field>
<Hds::Form::TextInput::Field
@isOptional={{true}}
@value={{@model.group_filter}}
@type='text'
name='group_filter'
disabled={{form.disabled}}
{{on 'input' (set-from-event @model 'group_filter')}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.group_filter.label'}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.group_filter.help'
}}</F.HelperText>
</Hds::Form::TextInput::Field>
<Hds::Form::Toggle::Field
name='enable_groups'
checked={{@model.enable_groups}}
disabled={{form.disabled}}
{{on 'change' this.toggleField}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.enable_groups.label'}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.enable_groups.help'
}}</F.HelperText>
</Hds::Form::Toggle::Field>
<Hds::Form::Toggle::Field
name='use_token_groups'
checked={{@model.use_token_groups}}
disabled={{form.disabled}}
{{on 'change' this.toggleField}}
as |F|
>
<F.Label>{{t 'resources.auth-method.form.use_token_groups.label'}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.use_token_groups.help'
}}</F.HelperText>
</Hds::Form::Toggle::Field>
<Hds::Form::TextInput::Field
@isOptional={{true}}
@value={{@model.maximum_page_size}}
@type='text'
name='maximum_page_size'
disabled={{form.disabled}}
{{on 'input' (set-from-event @model 'maximum_page_size')}}
as |F|
>
<F.Label>{{t
'resources.auth-method.form.maximum_page_size.label'
}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.maximum_page_size.help'
}}</F.HelperText>
</Hds::Form::TextInput::Field>
<Hds::Form::Select::Field
@isOptional={{true}}
@width='100%'
disabled={{form.disabled}}
name='dereference_aliases'
{{on 'change' (set-from-event @model 'dereference_aliases')}}
as |F|
>
<F.Label>{{t
'resources.auth-method.form.dereference_aliases.label'
}}</F.Label>
<F.HelperText>{{t
'resources.auth-method.form.dereference_aliases.help'
}}</F.HelperText>
<F.Options>
<option disabled hidden selected value=''>
{{t 'titles.choose-an-option'}}
</option>
{{#each-in this.dereferenceAliasesList as |key value|}}
<option value={{key}} selected={{eq key @model.dereference_aliases}}>
{{t (concat 'resources.auth-method.titles.' value)}}
</option>
{{/each-in}}
</F.Options>
</Hds::Form::Select::Field>
{{#if (can 'save model' @model)}}
<form.actions
@enableEditText={{t 'actions.edit-form'}}
@submitText={{t 'actions.save'}}
@cancelText={{t 'actions.cancel'}}
/>
{{/if}}
</Rose::Form>