From 246d7ea2ea849b115c0d6eb47e6ea725c6271d0a Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Tue, 30 Oct 2012 20:56:31 +0100 Subject: Separate control code from class definition --- core/setup.php | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/base.php | 12 +----------- lib/setup.php | 40 ---------------------------------------- 3 files changed, 54 insertions(+), 51 deletions(-) create mode 100644 core/setup.php diff --git a/core/setup.php b/core/setup.php new file mode 100644 index 00000000000..1c03e3397af --- /dev/null +++ b/core/setup.php @@ -0,0 +1,53 @@ + $hasSQLite, + 'hasMySQL' => $hasMySQL, + 'hasPostgreSQL' => $hasPostgreSQL, + 'hasOracle' => $hasOracle, + 'directory' => $datadir, + 'secureRNG' => OC_Util::secureRNG_available(), + 'htaccessWorking' => OC_Util::ishtaccessworking(), + 'errors' => array(), +); + +if(isset($_POST['install']) AND $_POST['install']=='true') { + // We have to launch the installation process : + $e = OC_Setup::install($_POST); + $errors = array('errors' => $e); + + if(count($e) > 0) { + //OC_Template::printGuestPage("", "error", array("errors" => $errors)); + $options = array_merge($_POST, $opts, $errors); + OC_Template::printGuestPage("", "installation", $options); + } + else { + header("Location: ".OC::$WEBROOT.'/'); + exit(); + } +} +else { + OC_Template::printGuestPage("", "installation", $opts); +} diff --git a/lib/base.php b/lib/base.php index 5c3d3fb80ce..baa384d102e 100644 --- a/lib/base.php +++ b/lib/base.php @@ -477,17 +477,7 @@ class OC{ */ public static function handleRequest() { if (!OC_Config::getValue('installed', false)) { - // Check for autosetup: - $autosetup_file = OC::$SERVERROOT."/config/autoconfig.php"; - if( file_exists( $autosetup_file )) { - OC_Log::write('core', 'Autoconfig file found, setting up owncloud...', OC_Log::INFO); - include $autosetup_file; - $_POST['install'] = 'true'; - $_POST = array_merge ($_POST, $AUTOCONFIG); - unlink($autosetup_file); - } - OC_Util::addScript('setup'); - require_once 'setup.php'; + require_once 'core/setup.php'; exit(); } // Handle WebDAV diff --git a/lib/setup.php b/lib/setup.php index 4e4a32e7362..579a1b523ce 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -1,45 +1,5 @@ $hasSQLite, - 'hasMySQL' => $hasMySQL, - 'hasPostgreSQL' => $hasPostgreSQL, - 'hasOracle' => $hasOracle, - 'directory' => $datadir, - 'secureRNG' => OC_Util::secureRNG_available(), - 'htaccessWorking' => OC_Util::ishtaccessworking(), - 'errors' => array(), -); - -if(isset($_POST['install']) AND $_POST['install']=='true') { - // We have to launch the installation process : - $e = OC_Setup::install($_POST); - $errors = array('errors' => $e); - - if(count($e) > 0) { - //OC_Template::printGuestPage("", "error", array("errors" => $errors)); - $options = array_merge($_POST, $opts, $errors); - OC_Template::printGuestPage("", "installation", $options); - } - else { - header("Location: ".OC::$WEBROOT.'/'); - exit(); - } -} -else { - OC_Template::printGuestPage("", "installation", $opts); -} - class OC_Setup { public static function install($options) { $error = array(); -- cgit v1.2.3 From 6d097529405a7e7791b4daac1909bafd38445c5c Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Tue, 30 Oct 2012 20:57:19 +0100 Subject: DRY for creating htaccess to protect data-directory --- lib/base.php | 4 +--- lib/setup.php | 4 ++++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/base.php b/lib/base.php index baa384d102e..de458cedb1e 100644 --- a/lib/base.php +++ b/lib/base.php @@ -225,9 +225,7 @@ class OC{ if (isset($_SERVER['SERVER_SOFTWARE']) && strstr($_SERVER['SERVER_SOFTWARE'], 'Apache')) { if(!OC_Util::ishtaccessworking()) { if(!file_exists(OC::$SERVERROOT.'/data/.htaccess')) { - $content = "deny from all\n"; - $content.= "IndexIgnore *"; - file_put_contents(OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data').'/.htaccess', $content); + OC_Setup::protectDataDirectory(); } } } diff --git a/lib/setup.php b/lib/setup.php index 579a1b523ce..1d3fbd1c8ea 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -559,6 +559,10 @@ class OC_Setup { $content.= "Options -Indexes\n"; @file_put_contents(OC::$SERVERROOT.'/.htaccess', $content); //supress errors in case we don't have permissions for it + self::protectDataDirectory(); + } + + public static function protectDataDirectory() { $content = "deny from all\n"; $content.= "IndexIgnore *"; file_put_contents(OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data').'/.htaccess', $content); -- cgit v1.2.3 From bbef5b377e2b90f0b7b54278228abb931cd6431f Mon Sep 17 00:00:00 2001 From: Jörn Friedrich Dreyer Date: Mon, 12 Nov 2012 10:49:40 +0100 Subject: add i18n for cancel button --- apps/files/js/files.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/files/js/files.js b/apps/files/js/files.js index e54d4d7b74f..982351c589e 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -219,8 +219,11 @@ $(document).ready(function() { $( '#uploadsize-message' ).dialog({ modal: true, buttons: { - Close: function() { - $( this ).dialog( 'close' ); + Close: { + text:t('files', 'Close'), + click:function() { + $( this ).dialog( 'close' ); + } } } }); -- cgit v1.2.3 From ba91f9a23717cef0d9dc675e47f66e303f139708 Mon Sep 17 00:00:00 2001 From: Jörn Friedrich Dreyer Date: Mon, 12 Nov 2012 12:04:46 +0100 Subject: add missing sql backticks, check sharing for error and add log --- lib/public/share.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/public/share.php b/lib/public/share.php index 071304ec249..e8fd6b2e920 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -552,7 +552,7 @@ class Share { $itemTypes = $collectionTypes; } $placeholders = join(',', array_fill(0, count($itemTypes), '?')); - $where .= ' WHERE item_type IN ('.$placeholders.'))'; + $where .= ' WHERE `item_type` IN ('.$placeholders.'))'; $queryArgs = $itemTypes; } else { $where = ' WHERE `item_type` = ?'; @@ -629,7 +629,7 @@ class Share { $queryArgs[] = $item; if ($includeCollections && $collectionTypes) { $placeholders = join(',', array_fill(0, count($collectionTypes), '?')); - $where .= ' OR item_type IN ('.$placeholders.'))'; + $where .= ' OR `item_type` IN ('.$placeholders.'))'; $queryArgs = array_merge($queryArgs, $collectionTypes); } } @@ -677,6 +677,9 @@ class Share { $root = strlen($root); $query = \OC_DB::prepare('SELECT '.$select.' FROM `*PREFIX*share` '.$where, $queryLimit); $result = $query->execute($queryArgs); + if (\OC_DB::isError($result)) { + \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result) . ', select=' . $select . ' where=' . $where, \OC_Log::ERROR); + } $items = array(); $targets = array(); while ($row = $result->fetchRow()) { -- cgit v1.2.3 From d79e9a2da74849a058ccb88975db52b5ea4a961e Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Thu, 8 Nov 2012 23:01:28 +0100 Subject: LDAP: cherrypick objectGUID handling from stable45, was part of PR 344 --- apps/user_ldap/lib/access.php | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php index 9cbb21ead0e..b2244c17c0e 100644 --- a/apps/user_ldap/lib/access.php +++ b/apps/user_ldap/lib/access.php @@ -79,7 +79,13 @@ abstract class Access { if(isset($result[$attr]) && $result[$attr]['count'] > 0) { $values = array(); for($i=0;$i<$result[$attr]['count'];$i++) { - $values[] = $this->resemblesDN($attr) ? $this->sanitizeDN($result[$attr][$i]) : $result[$attr][$i]; + if($this->resemblesDN($attr)) { + $values[] = $this->sanitizeDN($result[$attr][$i]); + } elseif(strtolower($attr) == 'objectguid') { + $values[] = $this->convertObjectGUID2Str($result[$attr][$i]); + } else { + $values[] = $result[$attr][$i]; + } } return $values; } @@ -729,6 +735,34 @@ abstract class Access { return $uuid; } + /** + * @brief converts a binary ObjectGUID into a string representation + * @param $oguid the ObjectGUID in it's binary form as retrieved from AD + * @returns String + * + * converts a binary ObjectGUID into a string representation + * http://www.php.net/manual/en/function.ldap-get-values-len.php#73198 + */ + private function convertObjectGUID2Str($oguid) { + $hex_guid = bin2hex($oguid); + $hex_guid_to_guid_str = ''; + for($k = 1; $k <= 4; ++$k) { + $hex_guid_to_guid_str .= substr($hex_guid, 8 - 2 * $k, 2); + } + $hex_guid_to_guid_str .= '-'; + for($k = 1; $k <= 2; ++$k) { + $hex_guid_to_guid_str .= substr($hex_guid, 12 - 2 * $k, 2); + } + $hex_guid_to_guid_str .= '-'; + for($k = 1; $k <= 2; ++$k) { + $hex_guid_to_guid_str .= substr($hex_guid, 16 - 2 * $k, 2); + } + $hex_guid_to_guid_str .= '-' . substr($hex_guid, 16, 4); + $hex_guid_to_guid_str .= '-' . substr($hex_guid, 20); + + return strtoupper($hex_guid_to_guid_str); + } + /** * @brief get a cookie for the next LDAP paged search * @param $filter the search filter to identify the correct search -- cgit v1.2.3 From 910a25adbd2ee525b228c8b0d0f73d867fd237d6 Mon Sep 17 00:00:00 2001 From: Brice Maron Date: Wed, 7 Nov 2012 23:34:38 +0000 Subject: Fix deleting multiple user w-o reloading V2 --- settings/js/users.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/settings/js/users.js b/settings/js/users.js index 89718b5a1b6..249d529df4f 100644 --- a/settings/js/users.js +++ b/settings/js/users.js @@ -16,7 +16,10 @@ var UserList={ * finishDelete() completes the process. This allows for 'undo'. */ do_delete:function( uid ) { - + if (typeof UserList.deleteUid !== 'undefined') { + //Already a user in the undo queue + UserList.finishDelete(null); + } UserList.deleteUid = uid; // Set undo flag -- cgit v1.2.3