550 lines
39 KiB
HTML
550 lines
39 KiB
HTML
<div class="col-sm-9 col-md-10 col-sm-push-3 col-md-push-2">
|
|
<ol class="breadcrumb">
|
|
<li><a href="#/realms/{{realm.realm}}/user-federation">{{:: 'user-federation' | translate}}</a></li>
|
|
<li data-ng-hide="create">{{instance.name|capitalize}}</li>
|
|
<li data-ng-show="create">{{:: 'add-user-storage-provider' | translate}}</li>
|
|
</ol>
|
|
|
|
<kc-tabs-ldap></kc-tabs-ldap>
|
|
|
|
<form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm">
|
|
<fieldset>
|
|
<legend><span class="text">{{:: 'required-settings' | translate}}</span></legend>
|
|
<div class="form-group clearfix" data-ng-show="!create">
|
|
<label class="col-md-2 control-label" for="providerId">{{:: 'provider-id' | translate}} </label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="providerId" type="text" ng-model="instance.id" readonly>
|
|
</div>
|
|
</div>
|
|
<div class="form-group clearfix block">
|
|
<label class="col-md-2 control-label" for="enabled">{{:: 'enabled' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input ng-model="instance.config['enabled'][0]" name="enabled" id="enabled" onoffswitchvalue on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'user-storage.enabled.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="consoleDisplayName">{{:: 'console-display-name' | translate}} </label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="consoleDisplayName" type="text" ng-model="instance.name" placeholder="{{:: 'defaults-to-id' | translate}}">
|
|
</div>
|
|
<kc-tooltip>{{:: 'console-display-name.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="priority">{{:: 'priority' | translate}} </label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="priority" type="text" ng-model="instance.config['priority'][0]">
|
|
</div>
|
|
<kc-tooltip>{{:: 'priority.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix block">
|
|
<label class="col-md-2 control-label" for="importEnabled">{{:: 'import-enabled' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input ng-model="instance.config['importEnabled'][0]" name="importEnabled" id="importEnabled" onoffswitchvalue on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.import-enabled.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label class="col-md-2 control-label" for="editMode">{{:: 'edit-mode' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<div>
|
|
<select class="form-control" id="editMode"
|
|
ng-model="instance.config['editMode'][0]">
|
|
<option>READ_ONLY</option>
|
|
<option>WRITABLE</option>
|
|
<option>UNSYNCED</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.edit-mode.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix block">
|
|
<label class="col-md-2 control-label" for="syncRegistrations">{{:: 'sync-registrations' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input ng-model="instance.config['syncRegistrations'][0]" name="syncRegistrations" id="syncRegistrations" onoffswitchvalue on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.sync-registrations.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="vendor"><span class="required">*</span> {{:: 'vendor' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<div data-ng-show="create">
|
|
<select class="form-control" id="vendor"
|
|
ng-model="instance.config['vendor'][0]"
|
|
ng-options="vendor.id as vendor.name for vendor in ldapVendors"
|
|
required>
|
|
</select>
|
|
</div>
|
|
<div data-ng-show="!create">
|
|
<input class="form-control" id="vendor-ro" type="text" ng-model="vendorName" readonly>
|
|
</div>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.vendor.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="usernameLDAPAttribute"><span class="required">*</span> {{:: 'username-ldap-attribute' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="usernameLDAPAttribute" type="text" ng-model="instance.config['usernameLDAPAttribute'][0]" placeholder="{{:: 'ldap-attribute-name-for-username' | translate}}" required>
|
|
</div>
|
|
<kc-tooltip>{{:: 'username-ldap-attribute.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="rdnLDAPAttribute"><span class="required">*</span> {{:: 'rdn-ldap-attribute' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="rdnLDAPAttribute" type="text" ng-model="instance.config['rdnLDAPAttribute'][0]" placeholder="{{:: 'ldap-attribute-name-for-user-rdn' | translate}}" required>
|
|
</div>
|
|
<kc-tooltip>{{:: 'rdn-ldap-attribute.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="uuidLDAPAttribute"><span class="required">*</span> {{:: 'uuid-ldap-attribute' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="uuidLDAPAttribute" type="text" ng-model="instance.config['uuidLDAPAttribute'][0]" placeholder="{{:: 'ldap-attribute-name-for-uuid' | translate}}" required>
|
|
</div>
|
|
<kc-tooltip>{{:: 'uuid-ldap-attribute.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="userObjectClasses"><span class="required">*</span> {{:: 'user-object-classes' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="userObjectClasses" type="text" ng-model="instance.config['userObjectClasses'][0]" placeholder="{{:: 'ldap-user-object-classes.placeholder' | translate}}" required>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.user-object-classes.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="ldapConnectionUrl"><span class="required">*</span> {{:: 'connection-url' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="ldapConnectionUrl" type="text" ng-model="instance.config['connectionUrl'][0]" placeholder="{{:: 'ldap-connection-url' | translate}}" required>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.connection-url.tooltip' | translate}}</kc-tooltip>
|
|
<div class="col-sm-4" data-ng-show="access.manageRealm">
|
|
<a class="btn btn-primary" data-ng-click="testConnection()">{{:: 'test-connection' | translate}}</a>
|
|
</div>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="ldapUsersDn"><span class="required">*</span> {{:: 'users-dn' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="ldapUsersDn" type="text" ng-model="instance.config['usersDn'][0]" placeholder="{{:: 'ldap-users-dn' | translate}}" required>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.users-dn.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="authType"><span class="required">*</span> {{:: 'authentication-type' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<div>
|
|
<select class="form-control" id="authType"
|
|
ng-model="instance.config['authType'][0]"
|
|
ng-options="authType.id as authType.name for authType in authTypes"
|
|
required>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.authentication-type.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="startTls">{{:: 'enable-start-tls' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input ng-model="instance.config['startTls'][0]" name="startTls" id="startTls" onoffswitchvalue on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.startTls.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-hide="instance.config['authType'][0] == 'none'">
|
|
<label class="col-md-2 control-label" for="ldapBindDn"><span class="required">*</span> {{:: 'bind-dn' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="ldapBindDn" type="text" ng-model="instance.config['bindDn'][0]" placeholder="{{:: 'ldap-bind-dn' | translate}}" data-ng-required="instance.config['authType'][0] != 'none'">
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.bind-dn.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-hide="instance.config['authType'][0] == 'none'">
|
|
<label class="col-md-2 control-label" for="ldapBindCred"><span class="required">*</span> {{:: 'bind-credential' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="ldapBindCred" kc-password ng-model="instance.config['bindCredential'][0]" placeholder="{{:: 'ldap-bind-credentials' | translate}}" data-ng-required="instance.config['authType'][0] != 'none'">
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.bind-credential.tooltip' | translate}}</kc-tooltip>
|
|
<div class="col-sm-4" data-ng-show="access.manageRealm">
|
|
<a class="btn btn-primary" data-ng-click="testAuthentication()">{{:: 'test-authentication' | translate}}</a>
|
|
</div>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="customUserSearchFilter">{{:: 'custom-user-ldap-filter' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="customUserSearchFilter" type="text" ng-model="instance.config['customUserSearchFilter'][0]" placeholder="{{:: 'ldap-filter' | translate}}">
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.custom-user-ldap-filter.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="col-md-2 control-label" for="searchScope">{{:: 'search-scope' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<div>
|
|
<select class="form-control" id="searchScope"
|
|
ng-model="instance.config['searchScope'][0]"
|
|
ng-options="searchScope.id as searchScope.name for searchScope in searchScopes"
|
|
required>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.search-scope.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="validatePasswordPolicy">{{:: 'validate-password-policy' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input ng-model="instance.config['validatePasswordPolicy'][0]" name="validatePasswordPolicy" id="validatePasswordPolicy" onoffswitchvalue on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.validate-password-policy.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="trustEmail">{{:: 'trust-email' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input ng-model="instance.config['trustEmail'][0]" name="trustEmail" id="trustEmail" onoffswitchvalue on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'trust-email.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="col-md-2 control-label" for="useTruststoreSpi">{{:: 'use-truststore-spi' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<div>
|
|
<select class="form-control" id="useTruststoreSpi"
|
|
ng-model="instance.config['useTruststoreSpi'][0]"
|
|
ng-options="useTruststoreSpi.id as useTruststoreSpi.name for useTruststoreSpi in useTruststoreOptions"
|
|
required>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.use-truststore-spi.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="connectionPooling">{{:: 'connection-pooling' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input ng-model="instance.config['connectionPooling'][0]" name="connectionPooling" id="connectionPooling" onoffswitchvalue on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.connection-pooling.tooltip' | translate}}</kc-tooltip>
|
|
<div class="col-sm-4" data-ng-show="instance.config['connectionPooling'][0] == 'true'">
|
|
<a class="btn btn-primary" data-ng-init="connectionPoolSettings=false" data-ng-click="connectionPoolSettings=!connectionPoolSettings">{{:: 'connection-pooling-settings' | translate}}</a>
|
|
</div>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="instance.config['connectionPooling'][0] == 'true' && connectionPoolSettings">
|
|
<label class="col-md-2 control-label" for="connectionPoolingAuthentication">{{:: 'connection-pooling-authentication' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="connectionPoolingAuthentication" type="text" ng-model="instance.config['connectionPoolingAuthentication'][0]" placeholder="{{:: 'connection-pooling-authentication-default' | translate}}"/>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.connection-pooling.authentication.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="instance.config['connectionPooling'][0] == 'true' && connectionPoolSettings">
|
|
<label class="col-md-2 control-label" for="connectionPoolingDebug">{{:: 'connection-pooling-debug' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="connectionPoolingDebug" type="text" ng-model="instance.config['connectionPoolingDebug'][0]" placeholder="{{:: 'connection-pooling-debug-default' | translate}}"/>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.connection-pooling.debug.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="instance.config['connectionPooling'][0] == 'true' && connectionPoolSettings">
|
|
<label class="col-md-2 control-label" for="connectionPoolingInitSize">{{:: 'connection-pooling-initsize' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="connectionPoolingInitSize" type="text" ng-model="instance.config['connectionPoolingInitSize'][0]" placeholder="{{:: 'connection-pooling-initsize-default' | translate}}"/>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.connection-pooling.initsize.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="instance.config['connectionPooling'][0] == 'true' && connectionPoolSettings">
|
|
<label class="col-md-2 control-label" for="connectionPoolingMaxSize">{{:: 'connection-pooling-maxsize' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="connectionPoolingMaxSize" type="text" ng-model="instance.config['connectionPoolingMaxSize'][0]" placeholder="{{:: 'connection-pooling-maxsize-default' | translate}}"/>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.connection-pooling.maxsize.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="instance.config['connectionPooling'][0] == 'true' && connectionPoolSettings">
|
|
<label class="col-md-2 control-label" for="connectionPoolingPrefSize">{{:: 'connection-pooling-prefsize' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="connectionPoolingPrefSize" type="text" ng-model="instance.config['connectionPoolingPrefSize'][0]" placeholder="{{:: 'connection-pooling-prefsize-default' | translate}}"/>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.connection-pooling.prefsize.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="instance.config['connectionPooling'][0] == 'true' && connectionPoolSettings">
|
|
<label class="col-md-2 control-label" for="connectionPoolingProtocol">{{:: 'connection-pooling-protocol' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="connectionPoolingProtocol" type="text" ng-model="instance.config['connectionPoolingProtocol'][0]" placeholder="{{:: 'connection-pooling-protocol-default' | translate}}"/>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.connection-pooling.protocol.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="instance.config['connectionPooling'][0] == 'true' && connectionPoolSettings">
|
|
<label class="col-md-2 control-label" for="connectionPoolingTimeout">{{:: 'connection-pooling-timeout' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="connectionPoolingTimeout" type="text" ng-model="instance.config['connectionPoolingTimeout'][0]" placeholder="{{:: 'connection-pooling-timeout-default' | translate}}"/>
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.connection-pooling.timeout.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="connectionTimeout">{{:: 'ldap-connection-timeout' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="connectionTimeout" type="text" ng-model="instance.config['connectionTimeout'][0]" placeholder="{{:: 'ldap-connection-timeout' | translate}}">
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.connection-timeout.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="readTimeout">{{:: 'ldap-read-timeout' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="readTimeout" type="text" ng-model="instance.config['readTimeout'][0]" placeholder="{{:: 'ldap-read-timeout' | translate}}">
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.read-timeout.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="pagination">{{:: 'pagination' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input ng-model="instance.config['pagination'][0]" name="pagination" id="pagination" onoffswitchvalue on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.pagination.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
</fieldset>
|
|
|
|
<fieldset>
|
|
<legend><span class="text">{{:: 'kerberos-integration' | translate}}</span></legend>
|
|
<div class="form-group">
|
|
<label class="col-md-2 control-label" for="allowKerberosAuthentication">{{:: 'allow-kerberos-authentication' | translate}} </label>
|
|
<div class="col-md-6">
|
|
<input ng-model="instance.config['allowKerberosAuthentication'][0]" name="allowKerberosAuthentication" id="allowKerberosAuthentication" onoffswitchvalue on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.allow-kerberos-authentication.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="instance.config['allowKerberosAuthentication'][0] == 'true'">
|
|
<label class="col-md-2 control-label" for="kerberosRealm"><span class="required">*</span> {{:: 'kerberos-realm' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="kerberosRealm" type="text" ng-model="instance.config['kerberosRealm'][0]" ng-required="instance.config['allowKerberosAuthentication'][0] == 'true'">
|
|
</div>
|
|
<kc-tooltip>{{:: 'kerberos-realm.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="instance.config['allowKerberosAuthentication'][0] == 'true'">
|
|
<label class="col-md-2 control-label" for="serverPrincipal"><span class="required">*</span> {{:: 'server-principal' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="serverPrincipal" type="text" ng-model="instance.config['serverPrincipal'][0]" ng-required="instance.config['allowKerberosAuthentication'][0] == 'true'">
|
|
</div>
|
|
<kc-tooltip>{{:: 'server-principal.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="instance.config['allowKerberosAuthentication'][0] == 'true'">
|
|
<label class="col-md-2 control-label" for="keyTab"><span class="required">*</span> {{:: 'keytab' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" id="keyTab" type="text" ng-model="instance.config['keyTab'][0]" ng-required="instance.config['allowKerberosAuthentication'][0] == 'true'">
|
|
</div>
|
|
<kc-tooltip>{{:: 'keytab.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group" data-ng-show="instance.config['allowKerberosAuthentication'][0] == 'true'">
|
|
<label class="col-md-2 control-label" for="debug">{{:: 'debug' | translate}} </label>
|
|
<div class="col-md-6">
|
|
<input ng-model="instance.config['debug'][0]" name="debug" id="debug" onoffswitchvalue on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'debug.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group" data-ng-show="instance.config['allowKerberosAuthentication'][0]">
|
|
<label class="col-md-2 control-label" for="useKerberosForPasswordAuthentication">{{:: 'use-kerberos-for-password-authentication' | translate}} </label>
|
|
<div class="col-md-6">
|
|
<input ng-model="instance.config['useKerberosForPasswordAuthentication'][0]" id="useKerberosForPasswordAuthentication" onoffswitchvalue on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.use-kerberos-for-password-authentication.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
</fieldset>
|
|
|
|
<fieldset>
|
|
<legend><span class="text">{{:: 'sync-settings' | translate}}</span></legend>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="batchSizeForSync">{{:: 'batch-size' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" type="text" ng-model="instance.config['batchSizeForSync'][0]" id="batchSizeForSync" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.batch-size.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="fullSyncEnabled">{{:: 'periodic-full-sync' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input ng-model="fullSyncEnabled" name="fullSyncEnabled" id="fullSyncEnabled" onoffswitch on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.periodic-full-sync.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="fullSyncEnabled">
|
|
<label class="col-md-2 control-label" for="fullSyncPeriod">{{:: 'full-sync-period' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" type="text" ng-model="instance.config['fullSyncPeriod'][0]" id="fullSyncPeriod" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'full-sync-period.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix">
|
|
<label class="col-md-2 control-label" for="changedSyncEnabled">{{:: 'periodic-changed-users-sync' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input ng-model="changedSyncEnabled" name="changedSyncEnabled" id="changedSyncEnabled" onoffswitch on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.periodic-changed-users-sync.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="changedSyncEnabled">
|
|
<label class="col-md-2 control-label" for="changedSyncPeriod">{{:: 'changed-users-sync-period' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" type="text" ng-model="instance.config['changedSyncPeriod'][0]" id="changedSyncPeriod" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'ldap.changed-users-sync-period.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
</fieldset>
|
|
|
|
<fieldset>
|
|
<legend><span class="text">{{:: 'user-storage-cache-policy' | translate}}</span></legend>
|
|
<div class="form-group">
|
|
<label for="cachePolicy" class="col-md-2 control-label">{{:: 'userStorage.cachePolicy' | translate}}</label>
|
|
<div class="col-md-2">
|
|
<div>
|
|
<select id="cachePolicy" ng-model="instance.config['cachePolicy'][0]" class="form-control">
|
|
<option value="DEFAULT">{{:: 'userStorage.cachePolicy.option.DEFAULT' | translate}}</option>
|
|
<option value="EVICT_DAILY">{{:: 'userStorage.cachePolicy.option.EVICT_DAILY' | translate}}</option>
|
|
<option value="EVICT_WEEKLY">{{:: 'userStorage.cachePolicy.option.EVICT_WEEKLY' | translate}}</option>
|
|
<option value="MAX_LIFESPAN">{{:: 'userStorage.cachePolicy.option.MAX_LIFESPAN' | translate}}</option>
|
|
<option value="NO_CACHE">{{:: 'userStorage.cachePolicy.option.NO_CACHE' | translate}}</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<kc-tooltip>{{:: 'userStorage.cachePolicy.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group" data-ng-show="instance.config['cachePolicy'][0] == 'EVICT_WEEKLY'">
|
|
<label for="evictionDay" class="col-md-2 control-label">{{:: 'userStorage.cachePolicy.evictionDay' | translate}}</label>
|
|
<div class="col-md-2">
|
|
<div>
|
|
<select id="evictionDay" ng-model="instance.config['evictionDay'][0]" class="form-control">
|
|
<option value="1">{{:: 'Sunday' | translate}}</option>
|
|
<option value="2">{{:: 'Monday' | translate}}</option>
|
|
<option value="3">{{:: 'Tuesday' | translate}}</option>
|
|
<option value="4">{{:: 'Wednesday' | translate}}</option>
|
|
<option value="5">{{:: 'Thursday' | translate}}</option>
|
|
<option value="6">{{:: 'Friday' | translate}}</option>
|
|
<option value="7">{{:: 'Saturday' | translate}}</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<kc-tooltip>{{:: 'userStorage.cachePolicy.evictionDay.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="instance.config['cachePolicy'][0] == 'EVICT_WEEKLY' || instance.config['cachePolicy'][0] == 'EVICT_DAILY'">
|
|
<label class="col-md-2 control-label" for="evictionHour">{{:: 'userStorage.cachePolicy.evictionHour' | translate}}</label>
|
|
<div class="col-md-2">
|
|
<div>
|
|
<select id="evictionHour" ng-model="instance.config['evictionHour'][0]" class="form-control">
|
|
<option value="0">00</option>
|
|
<option value="1">01</option>
|
|
<option value="2">02</option>
|
|
<option value="3">03</option>
|
|
<option value="4">04</option>
|
|
<option value="5">05</option>
|
|
<option value="6">06</option>
|
|
<option value="7">07</option>
|
|
<option value="8">08</option>
|
|
<option value="9">09</option>
|
|
<option value="10">10</option>
|
|
<option value="11">11</option>
|
|
<option value="12">12</option>
|
|
<option value="13">13</option>
|
|
<option value="14">14</option>
|
|
<option value="15">15</option>
|
|
<option value="16">16</option>
|
|
<option value="17">17</option>
|
|
<option value="18">18</option>
|
|
<option value="19">19</option>
|
|
<option value="20">20</option>
|
|
<option value="21">21</option>
|
|
<option value="22">22</option>
|
|
<option value="23">23</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<kc-tooltip>{{:: 'userStorage.cachePolicy.evictionHour.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="instance.config['cachePolicy'][0] == 'EVICT_WEEKLY' || instance.config['cachePolicy'][0] == 'EVICT_DAILY'">
|
|
<label class="col-md-2 control-label" for="evictionMinute">{{:: 'userStorage.cachePolicy.evictionMinute' | translate}}</label>
|
|
<div class="col-md-2">
|
|
<div>
|
|
<select id="evictionMinute" ng-model="instance.config['evictionMinute'][0]" class="form-control">
|
|
<option value="0">00</option>
|
|
<option value="1">01</option>
|
|
<option value="2">02</option>
|
|
<option value="3">03</option>
|
|
<option value="4">04</option>
|
|
<option value="5">05</option>
|
|
<option value="6">06</option>
|
|
<option value="7">07</option>
|
|
<option value="8">08</option>
|
|
<option value="9">09</option>
|
|
<option value="10">10</option>
|
|
<option value="11">11</option>
|
|
<option value="12">12</option>
|
|
<option value="13">13</option>
|
|
<option value="14">14</option>
|
|
<option value="15">15</option>
|
|
<option value="16">16</option>
|
|
<option value="17">17</option>
|
|
<option value="18">18</option>
|
|
<option value="19">19</option>
|
|
<option value="20">20</option>
|
|
<option value="21">21</option>
|
|
<option value="22">22</option>
|
|
<option value="23">23</option>
|
|
<option value="24">24</option>
|
|
<option value="25">25</option>
|
|
<option value="26">26</option>
|
|
<option value="27">27</option>
|
|
<option value="28">28</option>
|
|
<option value="29">29</option>
|
|
<option value="30">30</option>
|
|
<option value="31">31</option>
|
|
<option value="32">32</option>
|
|
<option value="33">33</option>
|
|
<option value="34">34</option>
|
|
<option value="35">35</option>
|
|
<option value="36">36</option>
|
|
<option value="37">37</option>
|
|
<option value="38">38</option>
|
|
<option value="39">39</option>
|
|
<option value="40">40</option>
|
|
<option value="41">41</option>
|
|
<option value="42">42</option>
|
|
<option value="43">43</option>
|
|
<option value="44">44</option>
|
|
<option value="45">45</option>
|
|
<option value="46">46</option>
|
|
<option value="47">47</option>
|
|
<option value="48">48</option>
|
|
<option value="49">49</option>
|
|
<option value="50">50</option>
|
|
<option value="51">51</option>
|
|
<option value="52">52</option>
|
|
<option value="53">53</option>
|
|
<option value="54">54</option>
|
|
<option value="55">55</option>
|
|
<option value="56">56</option>
|
|
<option value="57">57</option>
|
|
<option value="58">58</option>
|
|
<option value="59">59</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<kc-tooltip>{{:: 'userStorage.cachePolicy.evictionMinute.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
<div class="form-group clearfix" data-ng-show="instance.config['cachePolicy'][0] == 'MAX_LIFESPAN'">
|
|
<label class="col-md-2 control-label" for="maxLifespan">{{:: 'userStorage.cachePolicy.maxLifespan' | translate}}</label>
|
|
<div class="col-md-6">
|
|
<input class="form-control" type="text" ng-model="instance.config['maxLifespan'][0]" id="maxLifespan" />
|
|
</div>
|
|
<kc-tooltip>{{:: 'userStorage.cachePolicy.maxLifespan.tooltip' | translate}}</kc-tooltip>
|
|
</div>
|
|
</fieldset>
|
|
|
|
|
|
<div class="form-group">
|
|
<div class="col-md-10 col-md-offset-2" data-ng-show="create && access.manageRealm">
|
|
<button kc-save>{{:: 'save' | translate}}</button>
|
|
<button kc-cancel data-ng-click="cancel()">{{:: 'cancel' | translate}}</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<div class="col-md-10 col-md-offset-2" data-ng-show="!create && access.manageRealm">
|
|
<button kc-save data-ng-disabled="!changed">{{:: 'save' | translate}}</button>
|
|
<button kc-reset data-ng-disabled="!changed">{{:: 'cancel' | translate}}</button>
|
|
<button class="btn btn-primary" data-ng-click="triggerChangedUsersSync()" data-ng-hide="changed">{{:: 'synchronize-changed-users' | translate}}</button>
|
|
<button class="btn btn-primary" data-ng-click="triggerFullSync()" data-ng-hide="changed">{{:: 'synchronize-all-users' | translate}}</button>
|
|
<button class="btn btn-primary" data-ng-click="removeImportedUsers()" data-ng-hide="changed">{{:: 'remove-imported-users' | translate}}</button>
|
|
<button class="btn btn-primary" data-ng-click="unlinkUsers()" data-ng-hide="changed">{{:: 'unlink-users' | translate}}</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<kc-menu></kc-menu>
|