ldap: add provider field

This commit is contained in:
Girish Ramakrishnan
2019-10-25 15:38:04 -07:00
parent 106187e2f4
commit 9528db700a
2 changed files with 38 additions and 26 deletions

View File

@@ -282,13 +282,12 @@
<h4 class="modal-title">Configure LDAP</h4>
</div>
<div class="modal-body">
<div class="checkbox">
<label>
<input type="checkbox" ng-model="externalLdap.enabled">Enable LDAP</input>
</label>
<div class="form-group">
<label class="control-label" for="ldapProvider">LDAP provider <sup><a ng-href="{{ config.webServerOrigin }}/documentation/user-management/#external-ldap" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup></label>
<select class="form-control" id="ldapProvider" ng-model="externalLdap.provider" ng-options="a.value as a.name for a in ldapProvider"></select>
</div>
<div>
<div uib-collapse="externalLdap.provider === 'noop'">
<form name="externalLdapConfigForm" role="form" novalidate ng-submit="externalLdap.submit()" autocomplete="off">
<fieldset>
<p class="has-error text-center" ng-show="externalLdap.error.generic">{{ externalLdap.error.generic }}</p>
@@ -298,27 +297,27 @@
<div class="form-group" ng-class="{ 'has-error': externalLdap.error.url }">
<label class="control-label" for="inputExternalLdapConfigUrl">Server Url</label>
<input type="text" class="form-control" ng-disabled="!externalLdap.enabled" ng-model="externalLdap.url" id="inputExternalLdapConfigUrl" name="url" ng-disabled="externalLdap.busy" placeholder="ldaps://example.com:636" required>
<input type="text" class="form-control" ng-model="externalLdap.url" id="inputExternalLdapConfigUrl" name="url" ng-disabled="externalLdap.busy" placeholder="ldaps://example.com:636" required>
</div>
<div class="form-group" ng-class="{ 'has-error': externalLdap.error.baseDn }">
<label class="control-label" for="inputExternalLdapConfigBaseDn">Base DN</label>
<input type="text" class="form-control" ng-disabled="!externalLdap.enabled" ng-model="externalLdap.baseDn" id="inputExternalLdapConfigBaseDn" name="baseDn" ng-disabled="externalLdap.busy" placeholder="ou=users,dc=example,dc=com" required>
<input type="text" class="form-control" ng-model="externalLdap.baseDn" id="inputExternalLdapConfigBaseDn" name="baseDn" ng-disabled="externalLdap.busy" placeholder="ou=users,dc=example,dc=com" required>
</div>
<div class="form-group" ng-class="{ 'has-error': externalLdap.error.filter }">
<label class="control-label" for="inputExternalLdapConfigFilter">Filter</label>
<input type="text" class="form-control" ng-disabled="!externalLdap.enabled" ng-model="externalLdap.filter" id="inputExternalLdapConfigFilter" name="filter" ng-disabled="externalLdap.busy" placeholder="(objectClass=inetOrgPerson)" required>
<input type="text" class="form-control" ng-model="externalLdap.filter" id="inputExternalLdapConfigFilter" name="filter" ng-disabled="externalLdap.busy" placeholder="(objectClass=inetOrgPerson)" required>
</div>
<div class="form-group" ng-class="{ 'has-error': externalLdap.error.credentials }">
<label class="control-label" for="inputExternalLdapConfigBindDn">Bind DN (optional)</label>
<input type="text" class="form-control" ng-disabled="!externalLdap.enabled" ng-model="externalLdap.bindDn" id="inputExternalLdapConfigBindDn" name="bindDn" ng-disabled="externalLdap.busy" placeholder="uid=admin,ou=Users,dc=example,dc=com">
<input type="text" class="form-control" ng-model="externalLdap.bindDn" id="inputExternalLdapConfigBindDn" name="bindDn" ng-disabled="externalLdap.busy" placeholder="uid=admin,ou=Users,dc=example,dc=com">
</div>
<div class="form-group" ng-class="{ 'has-error': externalLdap.error.credentials }">
<label class="control-label" for="inputExternalLdapConfigBindPassword">Bind Password (optional)</label>
<input type="password" class="form-control" ng-disabled="!externalLdap.enabled" ng-model="externalLdap.bindPassword" id="inputExternalLdapConfigBindPassword" name="bindPassword" ng-disabled="externalLdap.busy" placeholder="">
<input type="password" class="form-control" ng-model="externalLdap.bindPassword" id="inputExternalLdapConfigBindPassword" name="bindPassword" ng-disabled="externalLdap.busy" placeholder="">
</div>
<input class="ng-hide" type="submit" ng-disabled="externalLdapConfigForm.$invalid"/>
@@ -469,12 +468,12 @@
<div class="row">
<div class="col-md-12">
<p>Cloudron will authenticate users against the configured LDAP server.</p>
<p>LDAP authentication is currently <b>{{ externalLdap.enabled ? 'enabled' : 'disabled' }}.</p>
<p>LDAP authentication is currently <b>{{ externalLdap.provider === 'noop' ? 'disabled' : 'enabled' }}.</p>
<br/>
<button class="btn btn-primary pull-right" ng-click="externalLdap.show()">Configure</button>
<button class="btn btn-success pull-right" ng-disabled="!externalLdap.enabled" ng-click="externalLdap.sync()"><i class="fa fa-circle-notch fa-spin" ng-show="externalLdap.syncBusy"></i> Synchronize</button>
<button class="btn btn-success pull-right" ng-disabled="externalLdap.provider === 'noop'" ng-click="externalLdap.sync()"><i class="fa fa-circle-notch fa-spin" ng-show="externalLdap.syncBusy"></i> Synchronize</button>
<a class="btn btn-primary pull-right" ng-show="externalLdap.taskId" ng-href="/logs.html?taskId={{ externalLdap.taskId }}" target="_blank">Show Logs</a>
</div>
</div>