LDAP: add Test Configuration functionality in the settings
This commit is contained in:
parent
d26f87e738
commit
6fbed6a588
|
@ -0,0 +1,39 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ownCloud - user_ldap
|
||||||
|
*
|
||||||
|
* @author Arthur Schiwon
|
||||||
|
* @copyright 2012 Arthur Schiwon blizzz@owncloud.com
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 3 of the License, or any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public
|
||||||
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Check user and app status
|
||||||
|
OCP\JSON::checkAdminUser();
|
||||||
|
OCP\JSON::checkAppEnabled('user_ldap');
|
||||||
|
OCP\JSON::callCheck();
|
||||||
|
|
||||||
|
$connection = new \OCA\user_ldap\lib\Connection(null);
|
||||||
|
if($connection->setConfiguration($_POST)) {
|
||||||
|
//Configuration is okay
|
||||||
|
if($connection->bind()) {
|
||||||
|
OCP\JSON::success(array('message' => 'The configuration is valid and the connection could be established!'));
|
||||||
|
} else {
|
||||||
|
OCP\JSON::error(array('message' => 'The configuration is valid, but the Bind failed. Please check the server settings and credentials.'));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
OCP\JSON::error(array('message' => 'The configuration is invalid. Please look in the ownCloud log for further details.'));
|
||||||
|
}
|
|
@ -1,3 +1,25 @@
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('#ldapSettings').tabs();
|
$('#ldapSettings').tabs();
|
||||||
|
$('#ldap_action_test_connection').button();
|
||||||
|
$('#ldap_action_test_connection').click(function(event){
|
||||||
|
event.preventDefault();
|
||||||
|
$.post(
|
||||||
|
OC.filePath('user_ldap','ajax','testConfiguration.php'),
|
||||||
|
$('#ldap').serialize(),
|
||||||
|
function (result) {
|
||||||
|
if (result.status == 'success') {
|
||||||
|
OC.dialogs.alert(
|
||||||
|
result.message,
|
||||||
|
'Connection test succeeded'
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$('#ldap_action_test_connection').css('background-color', 'red');
|
||||||
|
OC.dialogs.alert(
|
||||||
|
result.message,
|
||||||
|
'Connection test failed'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
|
@ -191,12 +191,21 @@ class Connection {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$params = array('ldap_host'=>'ldapHost', 'ldap_port'=>'ldapPort', 'ldap_dn'=>'ldapAgentName', 'ldap_agent_password'=>'ldapAgentPassword', 'ldap_base'=>'ldapBase', 'ldap_base_users'=>'ldapBaseUsers', 'ldap_base_groups'=>'ldapBaseGroups', 'ldap_userlist_filter'=>'ldapUserFilter', 'ldap_login_filter'=>'ldapLoginFilter', 'ldap_group_filter'=>'ldapGroupFilter', 'ldap_display_name'=>'ldapUserDisplayName', 'ldap_group_display_name'=>'ldapGroupDisplayName',
|
||||||
|
|
||||||
|
'ldap_tls'=>'ldapTLS', 'ldap_nocase'=>'ldapNoCase', 'ldap_quota_def'=>'ldapQuotaDefault', 'ldap_quota_attr'=>'ldapQuotaAttribute', 'ldap_email_attr'=>'ldapEmailAttribute', 'ldap_group_member_assoc_attribute'=>'ldapGroupMemberAssocAttr', 'ldap_cache_ttl'=>'ldapCacheTTL');
|
||||||
|
|
||||||
foreach($config as $parameter => $value) {
|
foreach($config as $parameter => $value) {
|
||||||
if(isset($this->config[$parameter])) {
|
if(isset($this->config[$parameter])) {
|
||||||
$this->config[$parameter] = $value;
|
$this->config[$parameter] = $value;
|
||||||
if(is_array($setParameters)) {
|
if(is_array($setParameters)) {
|
||||||
$setParameters[] = $parameter;
|
$setParameters[] = $parameter;
|
||||||
}
|
}
|
||||||
|
} else if(isset($params[$parameter])) {
|
||||||
|
$this->config[$params[$parameter]] = $value;
|
||||||
|
if(is_array($setParameters)) {
|
||||||
|
$setParameters[] = $params[$parameter];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
<p><label for="ldap_email_attr">Email Attribute</label><input type="text" id="ldap_email_attr" name="ldap_email_attr" value="<?php echo $_['ldap_email_attr']; ?>" /></p>
|
<p><label for="ldap_email_attr">Email Attribute</label><input type="text" id="ldap_email_attr" name="ldap_email_attr" value="<?php echo $_['ldap_email_attr']; ?>" /></p>
|
||||||
<p><label for="ldap_cache_ttl">Cache Time-To-Live</label><input type="text" id="ldap_cache_ttl" name="ldap_cache_ttl" value="<?php echo $_['ldap_cache_ttl']; ?>" /><small><?php echo $l->t('in seconds');?></small></p>
|
<p><label for="ldap_cache_ttl">Cache Time-To-Live</label><input type="text" id="ldap_cache_ttl" name="ldap_cache_ttl" value="<?php echo $_['ldap_cache_ttl']; ?>" /><small><?php echo $l->t('in seconds');?></small></p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<input type="submit" value="Save" /> <a href="http://owncloud.org/support/ldap-backend/" target="_blank"><img src="<?php echo OCP\Util::imagePath('','actions/info.png'); ?>" style="height:1.75ex" /> <?php echo $l->t('Help');?></a>
|
<input type="submit" value="Save" /> <button id="ldap_action_test_connection" name="ldap_action_test_connection">Test Configuration</button> <a href="http://owncloud.org/support/ldap-backend/" target="_blank"><img src="<?php echo OCP\Util::imagePath('','actions/info.png'); ?>" style="height:1.75ex" /> <?php echo $l->t('Help');?></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
Loading…
Reference in New Issue