2011-06-24 00:51:25 +04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* ownCloud - user_ldap
|
|
|
|
*
|
|
|
|
* @author Dominik Schmidt
|
|
|
|
* @copyright 2011 Dominik Schmidt dev@dominik-schmidt.de
|
|
|
|
*
|
|
|
|
* 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/>.
|
|
|
|
*
|
|
|
|
*/
|
2012-12-17 17:46:57 +04:00
|
|
|
|
|
|
|
OC_Util::checkAdminUser();
|
|
|
|
|
2013-01-18 14:42:34 +04:00
|
|
|
$params = array('ldap_host', 'ldap_port', 'ldap_backup_host',
|
|
|
|
'ldap_backup_port', 'ldap_override_main_server', 'ldap_dn',
|
|
|
|
'ldap_agent_password', 'ldap_base', 'ldap_base_users',
|
|
|
|
'ldap_base_groups', 'ldap_userlist_filter',
|
|
|
|
'ldap_login_filter', 'ldap_group_filter', 'ldap_display_name',
|
|
|
|
'ldap_group_display_name', 'ldap_tls',
|
|
|
|
'ldap_turn_off_cert_check', 'ldap_nocase', 'ldap_quota_def',
|
|
|
|
'ldap_quota_attr', 'ldap_email_attr',
|
|
|
|
'ldap_group_member_assoc_attribute', 'ldap_cache_ttl',
|
|
|
|
'home_folder_naming_rule'
|
|
|
|
);
|
2012-04-23 20:56:50 +04:00
|
|
|
|
2012-05-01 22:03:41 +04:00
|
|
|
OCP\Util::addscript('user_ldap', 'settings');
|
2012-08-06 19:25:59 +04:00
|
|
|
OCP\Util::addstyle('user_ldap', 'settings');
|
2011-06-24 00:51:25 +04:00
|
|
|
|
2013-01-18 14:42:34 +04:00
|
|
|
if($_POST) {
|
2012-11-01 19:48:17 +04:00
|
|
|
$clearCache = false;
|
2012-09-07 17:22:01 +04:00
|
|
|
foreach($params as $param) {
|
|
|
|
if(isset($_POST[$param])) {
|
2012-11-01 19:48:17 +04:00
|
|
|
$clearCache = true;
|
2012-05-14 14:58:58 +04:00
|
|
|
if('ldap_agent_password' == $param) {
|
|
|
|
OCP\Config::setAppValue('user_ldap', $param, base64_encode($_POST[$param]));
|
2012-08-28 16:24:31 +04:00
|
|
|
} elseif('home_folder_naming_rule' == $param) {
|
|
|
|
$value = empty($_POST[$param]) ? 'opt:username' : 'attr:'.$_POST[$param];
|
|
|
|
OCP\Config::setAppValue('user_ldap', $param, $value);
|
2012-05-14 15:13:08 +04:00
|
|
|
} else {
|
|
|
|
OCP\Config::setAppValue('user_ldap', $param, $_POST[$param]);
|
2012-05-14 14:58:58 +04:00
|
|
|
}
|
2011-11-30 02:11:42 +04:00
|
|
|
}
|
|
|
|
elseif('ldap_tls' == $param) {
|
|
|
|
// unchecked checkboxes are not included in the post paramters
|
2012-07-26 18:11:23 +04:00
|
|
|
OCP\Config::setAppValue('user_ldap', $param, 0);
|
2011-11-30 02:11:42 +04:00
|
|
|
}
|
|
|
|
elseif('ldap_nocase' == $param) {
|
2012-05-02 16:11:29 +04:00
|
|
|
OCP\Config::setAppValue('user_ldap', $param, 0);
|
2011-11-30 02:11:42 +04:00
|
|
|
}
|
2012-08-06 01:00:47 +04:00
|
|
|
elseif('ldap_turn_off_cert_check' == $param) {
|
|
|
|
OCP\Config::setAppValue('user_ldap', $param, 0);
|
|
|
|
}
|
2011-06-24 00:51:25 +04:00
|
|
|
}
|
2012-11-02 12:42:10 +04:00
|
|
|
if($clearCache) {
|
2012-11-01 19:48:17 +04:00
|
|
|
$ldap = new \OCA\user_ldap\lib\Connection('user_ldap');
|
|
|
|
$ldap->clearCache();
|
|
|
|
}
|
2011-06-24 00:51:25 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
// fill template
|
2013-01-18 14:42:34 +04:00
|
|
|
$tmpl = new OCP\Template('user_ldap', 'settings');
|
2012-09-07 17:22:01 +04:00
|
|
|
foreach($params as $param) {
|
2013-01-18 14:42:34 +04:00
|
|
|
$value = OCP\Config::getAppValue('user_ldap', $param, '');
|
|
|
|
$tmpl->assign($param, $value);
|
2011-06-24 00:51:25 +04:00
|
|
|
}
|
2011-06-24 01:17:10 +04:00
|
|
|
|
2012-04-23 20:56:50 +04:00
|
|
|
// settings with default values
|
2013-01-18 14:42:34 +04:00
|
|
|
$tmpl->assign('ldap_port', OCP\Config::getAppValue('user_ldap', 'ldap_port', '389'));
|
|
|
|
$tmpl->assign('ldap_display_name', OCP\Config::getAppValue('user_ldap', 'ldap_display_name', 'uid'));
|
|
|
|
$tmpl->assign('ldap_group_display_name', OCP\Config::getAppValue('user_ldap', 'ldap_group_display_name', 'cn'));
|
|
|
|
$tmpl->assign('ldap_group_member_assoc_attribute', OCP\Config::getAppValue('user_ldap', 'ldap_group_member_assoc_attribute', 'uniqueMember'));
|
|
|
|
$tmpl->assign('ldap_agent_password', base64_decode(OCP\Config::getAppValue('user_ldap', 'ldap_agent_password')));
|
|
|
|
$tmpl->assign('ldap_cache_ttl', OCP\Config::getAppValue('user_ldap', 'ldap_cache_ttl', '600'));
|
2012-08-28 16:24:31 +04:00
|
|
|
$hfnr = OCP\Config::getAppValue('user_ldap', 'home_folder_naming_rule', 'opt:username');
|
|
|
|
$hfnr = ($hfnr == 'opt:username') ? '' : substr($hfnr, strlen('attr:'));
|
2013-01-18 14:42:34 +04:00
|
|
|
$tmpl->assign('home_folder_naming_rule', $hfnr, '');
|
2013-01-18 04:23:15 +04:00
|
|
|
$tmpl->assign('serverConfigurationOptions', '', false);
|
2011-11-30 02:11:42 +04:00
|
|
|
|
2011-08-23 03:40:13 +04:00
|
|
|
return $tmpl->fetchPage();
|