mirror of
https://github.com/nextcloud/server.git
synced 2026-04-22 14:50:17 -04:00
Merge branch 'master' of gitorious.org:owncloud/owncloud
This commit is contained in:
commit
2d3c709163
6 changed files with 57 additions and 27 deletions
|
|
@ -27,12 +27,6 @@ require_once('apps/user_ldap/group_ldap.php');
|
|||
|
||||
OCP\App::registerAdmin('user_ldap','settings');
|
||||
|
||||
// define LDAP_DEFAULT_PORT
|
||||
define('OC_USER_BACKEND_LDAP_DEFAULT_PORT', 389);
|
||||
|
||||
// define OC_USER_BACKEND_LDAP_DEFAULT_DISPLAY_NAME
|
||||
define('OC_USER_BACKEND_LDAP_DEFAULT_DISPLAY_NAME', 'uid');
|
||||
|
||||
// register user backend
|
||||
OC_User::useBackend( 'LDAP' );
|
||||
OC_Group::useBackend( new OC_GROUP_LDAP() );
|
||||
|
|
|
|||
|
|
@ -1,9 +1,33 @@
|
|||
<?php
|
||||
|
||||
//from version 0.1 to 0.2
|
||||
|
||||
//settings
|
||||
$pw = OCP\Config::getAppValue('user_ldap', 'ldap_password');
|
||||
if(!is_null($pw)) {
|
||||
$pwEnc = base64_encode($pw);
|
||||
OCP\Config::setAppValue('user_ldap', 'ldap_agent_password', $pwEnc);
|
||||
OC_Appconfig::deleteKey('user_ldap', 'ldap_password');
|
||||
}
|
||||
|
||||
//detect if we can switch on naming guidelines. We won't do it on conflicts.
|
||||
//it's a bit spaghetti, but hey.
|
||||
$sqlCleanMap = 'DELETE FROM *PREFIX*ldap_user_mapping';
|
||||
|
||||
require_once(OC::$APPSROOT.'/apps/user_ldap/lib_ldap.php');
|
||||
require_once(OC::$APPSROOT.'/apps/user_ldap/user_ldap.php');
|
||||
|
||||
OCP\Config::setSystemValue('ldapIgnoreNamingRules', true);
|
||||
$LDAP_USER = new OC_USER_LDAP();
|
||||
$users_old = $LDAP_USER->getUsers();
|
||||
$query = OCP\DB::prepare($sqlCleanMap);
|
||||
$query->execute();
|
||||
OCP\Config::setSystemValue('ldapIgnoreNamingRules', false);
|
||||
OC_LDAP::init(true);
|
||||
$users_new = $LDAP_USER->getUsers();
|
||||
$query = OCP\DB::prepare($sqlCleanMap);
|
||||
$query->execute();
|
||||
if($users_old !== $users_new) {
|
||||
//we don't need to check Groups, because they were not supported in 3'
|
||||
OCP\Config::setSystemValue('ldapIgnoreNamingRules', true);
|
||||
}
|
||||
|
|
@ -45,14 +45,21 @@ class OC_LDAP {
|
|||
static protected $ldapAgentPassword;
|
||||
static protected $ldapTLS;
|
||||
static protected $ldapNoCase;
|
||||
static protected $ldapIgnoreNamingRules;
|
||||
// user and group settings, that are needed in both backends
|
||||
static protected $ldapUserDisplayName;
|
||||
static protected $ldapUserFilter;
|
||||
static protected $ldapGroupDisplayName;
|
||||
static protected $ldapLoginFilter;
|
||||
|
||||
static public function init() {
|
||||
self::readConfiguration();
|
||||
/**
|
||||
* @brief initializes the LDAP backend
|
||||
* @param $force read the config settings no matter what
|
||||
*
|
||||
* initializes the LDAP backend
|
||||
*/
|
||||
static public function init($force = false) {
|
||||
self::readConfiguration($force);
|
||||
self::establishConnection();
|
||||
}
|
||||
|
||||
|
|
@ -527,6 +534,10 @@ class OC_LDAP {
|
|||
}
|
||||
|
||||
static private function sanitizeUsername($name) {
|
||||
if(self::$ldapIgnoreNamingRules) {
|
||||
return $name;
|
||||
}
|
||||
|
||||
//REPLACEMENTS
|
||||
$name = str_replace(' ', '_', $name);
|
||||
|
||||
|
|
@ -594,21 +605,22 @@ class OC_LDAP {
|
|||
/**
|
||||
* Caches the general LDAP configuration.
|
||||
*/
|
||||
static private function readConfiguration() {
|
||||
if(!self::$configured) {
|
||||
self::$ldapHost = OCP\Config::getAppValue('user_ldap', 'ldap_host', '');
|
||||
self::$ldapPort = OCP\Config::getAppValue('user_ldap', 'ldap_port', OC_USER_BACKEND_LDAP_DEFAULT_PORT);
|
||||
self::$ldapAgentName = OCP\Config::getAppValue('user_ldap', 'ldap_dn','');
|
||||
self::$ldapAgentPassword = base64_decode(OCP\Config::getAppValue('user_ldap', 'ldap_agent_password',''));
|
||||
self::$ldapBase = OCP\Config::getAppValue('user_ldap', 'ldap_base', '');
|
||||
self::$ldapBaseUsers = OCP\Config::getAppValue('user_ldap', 'ldap_base_users',self::$ldapBase);
|
||||
self::$ldapBaseGroups = OCP\Config::getAppValue('user_ldap', 'ldap_base_groups', self::$ldapBase);
|
||||
self::$ldapTLS = OCP\Config::getAppValue('user_ldap', 'ldap_tls',0);
|
||||
self::$ldapNoCase = OCP\Config::getAppValue('user_ldap', 'ldap_nocase', 0);
|
||||
self::$ldapUserDisplayName = strtolower(OCP\Config::getAppValue('user_ldap', 'ldap_display_name', OC_USER_BACKEND_LDAP_DEFAULT_DISPLAY_NAME));
|
||||
self::$ldapUserFilter = OCP\Config::getAppValue('user_ldap', 'ldap_userlist_filter','objectClass=person');
|
||||
self::$ldapLoginFilter = OCP\Config::getAppValue('user_ldap', 'ldap_login_filter', '(uid=%uid)');
|
||||
self::$ldapGroupDisplayName = strtolower(OCP\Config::getAppValue('user_ldap', 'ldap_group_display_name', LDAP_GROUP_DISPLAY_NAME_ATTR));
|
||||
static private function readConfiguration($force = false) {
|
||||
if(!self::$configured || $force) {
|
||||
self::$ldapHost = OCP\Config::getAppValue('user_ldap', 'ldap_host', '');
|
||||
self::$ldapPort = OCP\Config::getAppValue('user_ldap', 'ldap_port', 389);
|
||||
self::$ldapAgentName = OCP\Config::getAppValue('user_ldap', 'ldap_dn','');
|
||||
self::$ldapAgentPassword = base64_decode(OCP\Config::getAppValue('user_ldap', 'ldap_agent_password',''));
|
||||
self::$ldapBase = OCP\Config::getAppValue('user_ldap', 'ldap_base', '');
|
||||
self::$ldapBaseUsers = OCP\Config::getAppValue('user_ldap', 'ldap_base_users',self::$ldapBase);
|
||||
self::$ldapBaseGroups = OCP\Config::getAppValue('user_ldap', 'ldap_base_groups', self::$ldapBase);
|
||||
self::$ldapTLS = OCP\Config::getAppValue('user_ldap', 'ldap_tls',0);
|
||||
self::$ldapNoCase = OCP\Config::getAppValue('user_ldap', 'ldap_nocase', 0);
|
||||
self::$ldapUserDisplayName = strtolower(OCP\Config::getAppValue('user_ldap', 'ldap_display_name', 'uid'));
|
||||
self::$ldapUserFilter = OCP\Config::getAppValue('user_ldap', 'ldap_userlist_filter','objectClass=person');
|
||||
self::$ldapLoginFilter = OCP\Config::getAppValue('user_ldap', 'ldap_login_filter', '(uid=%uid)');
|
||||
self::$ldapGroupDisplayName = strtolower(OCP\Config::getAppValue('user_ldap', 'ldap_group_display_name', LDAP_GROUP_DISPLAY_NAME_ATTR));
|
||||
self::$ldapIgnoreNamingRules = OCP\Config::getSystemValue('ldapIgnoreNamingRules', false);
|
||||
|
||||
if(empty(self::$ldapBaseUsers)) {
|
||||
OCP\Util::writeLog('ldap', 'Base for Users is empty, using Base DN', OCP\Util::INFO);
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@ foreach($params as $param){
|
|||
}
|
||||
|
||||
// settings with default values
|
||||
$tmpl->assign( 'ldap_port', OCP\Config::getAppValue('user_ldap', 'ldap_port', OC_USER_BACKEND_LDAP_DEFAULT_PORT));
|
||||
$tmpl->assign( 'ldap_display_name', OCP\Config::getAppValue('user_ldap', 'ldap_display_name', OC_USER_BACKEND_LDAP_DEFAULT_DISPLAY_NAME));
|
||||
$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_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')));
|
||||
|
||||
|
|
|
|||
|
|
@ -117,6 +117,6 @@ elseif(OC_User::isLoggedIn()) {
|
|||
if(!array_key_exists('sectoken', $_SESSION) || (array_key_exists('sectoken', $_SESSION) && is_null(OC::$REQUESTEDFILE)) || substr(OC::$REQUESTEDFILE, -3) == 'php'){
|
||||
$sectoken=rand(1000000,9999999);
|
||||
$_SESSION['sectoken']=$sectoken;
|
||||
OC_Template::printGuestPage('', 'login', array('error' => $error, 'sectoken' => $sectoken, 'redirect' => isset($_REQUEST['redirect_url'])?htmlentities($_REQUEST['redirect_url']):'' ));
|
||||
OC_Template::printGuestPage('', 'login', array('error' => $error, 'sectoken' => $sectoken, 'redirect' => substr($_SERVER['REQUEST_URI'], 1)));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -312,7 +312,7 @@ class OC_Util {
|
|||
*/
|
||||
public static function redirectToDefaultPage(){
|
||||
if(isset($_REQUEST['redirect_url'])) {
|
||||
header( 'Location: '.htmlentities($_REQUEST['redirect_url']));
|
||||
header( 'Location: /'.htmlentities($_REQUEST['redirect_url']));
|
||||
} else {
|
||||
header( 'Location: '.OC::$WEBROOT.'/'.OC_Appconfig::getValue('core', 'defaultpage', '?app=files'));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue