mirror of
https://github.com/sismics/docs.git
synced 2025-12-21 21:51:39 +00:00
LDAP support, courtesy of an anonymous donator
This commit is contained in:
@@ -244,6 +244,15 @@ angular.module('docs',
|
||||
}
|
||||
}
|
||||
})
|
||||
.state('settings.ldap', {
|
||||
url: '/ldap',
|
||||
views: {
|
||||
'settings': {
|
||||
templateUrl: 'partial/docs/settings.ldap.html',
|
||||
controller: 'SettingsLdap'
|
||||
}
|
||||
}
|
||||
})
|
||||
.state('document', {
|
||||
url: '/document',
|
||||
abstract: true,
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Settings LDAP page controller.
|
||||
*/
|
||||
angular.module('docs').controller('SettingsLdap', function($scope, Restangular, $translate, $timeout) {
|
||||
$scope.ldap = {
|
||||
enabled: false
|
||||
};
|
||||
|
||||
// Get the LDAP configuration
|
||||
Restangular.one('app/config_ldap').get().then(function (data) {
|
||||
$scope.ldap = data;
|
||||
if ($scope.ldap.default_storage) {
|
||||
$scope.ldap.default_storage /= 1000000;
|
||||
}
|
||||
});
|
||||
|
||||
// Edit SMTP config
|
||||
$scope.saveResult = undefined;
|
||||
$scope.save = function () {
|
||||
var ldap = angular.copy($scope.ldap);
|
||||
if (ldap.default_storage) {
|
||||
ldap.default_storage *= 1000000;
|
||||
}
|
||||
Restangular.one('app').post('config_ldap', ldap).then(function () {
|
||||
$scope.saveResult = $translate.instant('settings.ldap.saved');
|
||||
$timeout(function() {
|
||||
$scope.saveResult = undefined;
|
||||
}, 5000);
|
||||
});
|
||||
};
|
||||
});
|
||||
@@ -94,6 +94,7 @@
|
||||
<script src="app/docs/controller/settings/SettingsGroupEdit.js" type="text/javascript"></script>
|
||||
<script src="app/docs/controller/settings/SettingsVocabulary.js" type="text/javascript"></script>
|
||||
<script src="app/docs/controller/settings/SettingsMetadata.js" type="text/javascript"></script>
|
||||
<script src="app/docs/controller/settings/SettingsLdap.js" type="text/javascript"></script>
|
||||
<script src="app/docs/controller/usergroup/UserGroup.js" type="text/javascript"></script>
|
||||
<script src="app/docs/controller/usergroup/UserProfile.js" type="text/javascript"></script>
|
||||
<script src="app/docs/controller/usergroup/GroupProfile.js" type="text/javascript"></script>
|
||||
|
||||
@@ -278,8 +278,22 @@
|
||||
"menu_vocabularies": "Vocabularies",
|
||||
"menu_configuration": "Configuration",
|
||||
"menu_inbox": "Inbox scanning",
|
||||
"menu_ldap": "LDAP authentication",
|
||||
"menu_metadata": "Custom metadata",
|
||||
"menu_monitoring": "Monitoring",
|
||||
"ldap": {
|
||||
"title": "LDAP authentication",
|
||||
"enabled": "Enable LDAP authentication",
|
||||
"host": "LDAP hostname",
|
||||
"port": "LDAP port (389 by default)",
|
||||
"admin_dn": "Admin DN",
|
||||
"admin_password": "Admin password",
|
||||
"base_dn": "Base search DN",
|
||||
"filter": "Search filter (must contains USERNAME, eg. \"(uid=USERNAME)\")",
|
||||
"default_email": "Default email for LDAP user",
|
||||
"default_storage": "Default storage for LDAP user",
|
||||
"saved": "LDAP configuration saved successfully"
|
||||
},
|
||||
"user": {
|
||||
"title": "Users management",
|
||||
"add_user": "Add a user",
|
||||
|
||||
@@ -278,7 +278,21 @@
|
||||
"menu_vocabularies": "Vocabulaires",
|
||||
"menu_configuration": "Configuration",
|
||||
"menu_inbox": "Scanning de boîte de réception",
|
||||
"menu_ldap": "Authentification LDAP",
|
||||
"menu_monitoring": "Monitoring",
|
||||
"ldap": {
|
||||
"title": "Authentification LDAP",
|
||||
"enabled": "Activer l'authentication LDAP",
|
||||
"host": "Hôte LDAP",
|
||||
"port": "Port LDAP (389 par défaut)",
|
||||
"admin_dn": "DN administrateur",
|
||||
"admin_password": "Mot de passe administrateur",
|
||||
"base_dn": "DN de recherche",
|
||||
"filter": "Filtre de recherche (doit contenir USERNAME, cf. \"(uid=USERNAME)\")",
|
||||
"default_email": "Email par défaut pour les utilisateurs LDAP",
|
||||
"default_storage": "Stockage par défaut pour les utilisateurs LDAP",
|
||||
"saved": "Configuration IMAP sauvegardée avec succès"
|
||||
},
|
||||
"user": {
|
||||
"title": "Gestion des utilisateurs",
|
||||
"add_user": "Ajouter un utilisateur",
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
<a class="list-group-item" ui-sref-active="{ active: 'settings.config.**' }" href="#/settings/config">{{ 'settings.menu_configuration' | translate }}</a>
|
||||
<a class="list-group-item" ui-sref-active="{ active: 'settings.metadata.**' }" href="#/settings/metadata">{{ 'settings.menu_metadata' | translate }}</a>
|
||||
<a class="list-group-item" ui-sref-active="{ active: 'settings.inbox.**' }" href="#/settings/inbox">{{ 'settings.menu_inbox' | translate }}</a>
|
||||
<a class="list-group-item" ui-sref-active="{ active: 'settings.ldap.**' }" href="#/settings/ldap">{{ 'settings.menu_ldap' | translate }}</a>
|
||||
<a class="list-group-item" ui-sref-active="{ active: 'settings.monitoring.**' }" href="#/settings/monitoring">{{ 'settings.menu_monitoring' | translate }}</a>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
88
docs-web/src/main/webapp/src/partial/docs/settings.ldap.html
Normal file
88
docs-web/src/main/webapp/src/partial/docs/settings.ldap.html
Normal file
@@ -0,0 +1,88 @@
|
||||
<h2 translate="settings.ldap.title"></h2>
|
||||
<form class="form-horizontal" name="form" novalidate>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label" for="ldapEnabled">{{ 'settings.ldap.enabled' | translate }}</label>
|
||||
<div class="col-sm-7">
|
||||
<input name="enabled" type="checkbox" id="ldapEnabled" ng-model="ldap.enabled" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="ldap.enabled" class="form-group" ng-class="{ 'has-error': !form.hostname.$valid && form.$dirty }">
|
||||
<label class="col-sm-2 control-label" for="ldapHost">{{ 'settings.ldap.host' | translate }}</label>
|
||||
<div class="col-sm-7">
|
||||
<input name="hostname" type="text" class="form-control" id="ldapHost" ng-model="ldap.host" ng-maxlength="250" required />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="ldap.enabled" class="form-group" ng-class="{ 'has-error': !form.port.$valid && form.$dirty }">
|
||||
<label class="col-sm-2 control-label" for="ldapPort">{{ 'settings.ldap.port' | translate }}</label>
|
||||
<div class="col-sm-7">
|
||||
<input name="port" type="number" class="form-control" id="ldapPort" ng-model="ldap.port" required />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="ldap.enabled" class="form-group" ng-class="{ 'has-error': !form.adminDn.$valid && form.$dirty }">
|
||||
<label class="col-sm-2 control-label" for="ldapAdminDn">{{ 'settings.ldap.admin_dn' | translate }}</label>
|
||||
<div class="col-sm-7">
|
||||
<input name="adminDn" type="text" class="form-control" id="ldapAdminDn" ng-model="ldap.admin_dn" ng-maxlength="250" required />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="ldap.enabled" class="form-group" ng-class="{ 'has-error': !form.adminPassword.$valid && form.$dirty }">
|
||||
<label class="col-sm-2 control-label" for="ldapAdminPassword">{{ 'settings.ldap.admin_password' | translate }}</label>
|
||||
<div class="col-sm-7">
|
||||
<input name="adminPassword" type="password" class="form-control" id="ldapAdminPassword" ng-model="ldap.admin_password" ng-maxlength="250" required />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="ldap.enabled" class="form-group" ng-class="{ 'has-error': !form.baseDn.$valid && form.$dirty }">
|
||||
<label class="col-sm-2 control-label" for="ldapBaseDn">{{ 'settings.ldap.base_dn' | translate }}</label>
|
||||
<div class="col-sm-7">
|
||||
<input name="baseDn" type="text" class="form-control" id="ldapBaseDn" ng-model="ldap.base_dn" ng-maxlength="250" required />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="ldap.enabled" class="form-group" ng-class="{ 'has-error': !form.filter.$valid && form.$dirty }">
|
||||
<label class="col-sm-2 control-label" for="ldapFilter">{{ 'settings.ldap.filter' | translate }}</label>
|
||||
<div class="col-sm-7">
|
||||
<input name="filter" type="text" class="form-control" id="ldapFilter"
|
||||
ng-pattern="/(USERNAME)+/"
|
||||
ng-model="ldap.filter" ng-maxlength="250" required />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="ldap.enabled" class="form-group" ng-class="{ 'has-error': !form.defaultEmail.$valid && form.$dirty }">
|
||||
<label class="col-sm-2 control-label" for="ldapDefaultEmail">{{ 'settings.ldap.default_email' | translate }}</label>
|
||||
<div class="col-sm-7">
|
||||
<input name="defaultEmail" type="text" class="form-control" id="ldapDefaultEmail" ng-model="ldap.default_email" ng-maxlength="250" required />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="ldap.enabled" class="form-group" ng-class="{ 'has-error': !form.defaultStorage.$valid && form.$dirty }">
|
||||
<label class="col-sm-2 control-label" for="ldapDefaultStorage">{{ 'settings.ldap.default_storage' | translate }}</label>
|
||||
<div class="col-sm-7">
|
||||
<div class="input-group">
|
||||
<input name="defaultStorage" type="number" id="ldapDefaultStorage" required class="form-control"
|
||||
ng-pattern="/[0-9]*/" ng-model="ldap.default_storage"/>
|
||||
<div class="input-group-addon">{{ 'filter.filesize.mb' | translate }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-3">
|
||||
<span class="help-block" ng-show="form.default_storage.$error.pattern && form.$dirty">{{ 'validation.number' | translate }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button type="submit" class="btn btn-primary" ng-click="save()" ng-disabled="!form.$valid">
|
||||
<span class="fas fa-pencil-alt"></span> {{ 'save' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="alert col-sm-9 alert-success"
|
||||
ng-show="saveResult">
|
||||
{{ saveResult }}
|
||||
</div>
|
||||
Reference in New Issue
Block a user