aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Tanghus <thomas@tanghus.net>2012-11-12 23:36:59 +0100
committerThomas Tanghus <thomas@tanghus.net>2012-11-12 23:36:59 +0100
commit268a48479dd8cc14eaf3484043cf4857526ccab2 (patch)
treebe2fe2a161cf50eeadabfc2f7910db6590454fdf
parentc127c78df498214ed03982c9a406d8c52135123b (diff)
parent7b53c9d3f07bf630d38a7a9c92ee44a3fb9b0f21 (diff)
downloadnextcloud-server-268a48479dd8cc14eaf3484043cf4857526ccab2.tar.gz
nextcloud-server-268a48479dd8cc14eaf3484043cf4857526ccab2.zip
Merge branch 'master' of github.com:owncloud/core into vcategories_db
-rw-r--r--apps/files/js/files.js7
-rw-r--r--apps/user_ldap/lib/access.php36
-rw-r--r--core/setup.php53
-rw-r--r--lib/base.php16
-rw-r--r--lib/public/share.php7
-rw-r--r--lib/setup.php44
-rw-r--r--settings/js/users.js5
7 files changed, 108 insertions, 60 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' );
+ }
}
}
});
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;
}
@@ -730,6 +736,34 @@ abstract class Access {
}
/**
+ * @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
* @param $limit the limit (or 'pageSize'), to identify the correct search well
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 @@
+<?php
+
+// 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');
+
+$hasSQLite = (is_callable('sqlite_open') or class_exists('SQLite3'));
+$hasMySQL = is_callable('mysql_connect');
+$hasPostgreSQL = is_callable('pg_connect');
+$hasOracle = is_callable('oci_connect');
+$datadir = OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data');
+
+// Test if .htaccess is working
+$content = "deny from all";
+file_put_contents(OC::$SERVERROOT.'/data/.htaccess', $content);
+
+$opts = array(
+ 'hasSQLite' => $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 50617081b1f..c97700b3dbf 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -227,9 +227,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();
}
}
}
@@ -481,17 +479,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/public/share.php b/lib/public/share.php
index 24de4dcd5b2..dcb1b5c278e 100644
--- a/lib/public/share.php
+++ b/lib/public/share.php
@@ -548,7 +548,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` = ?';
@@ -625,7 +625,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);
}
}
@@ -673,6 +673,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()) {
diff --git a/lib/setup.php b/lib/setup.php
index 013ae2f6efc..264cd55795e 100644
--- a/lib/setup.php
+++ b/lib/setup.php
@@ -1,45 +1,5 @@
<?php
-$hasSQLite = (is_callable('sqlite_open') or class_exists('SQLite3'));
-$hasMySQL = is_callable('mysql_connect');
-$hasPostgreSQL = is_callable('pg_connect');
-$hasOracle = is_callable('oci_connect');
-$datadir = OC_Config::getValue('datadirectory', OC::$SERVERROOT.'/data');
-
-// Test if .htaccess is working
-$content = "deny from all";
-file_put_contents(OC::$SERVERROOT.'/data/.htaccess', $content);
-
-$opts = array(
- 'hasSQLite' => $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();
@@ -607,6 +567,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);
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