Merge branch 'master' into fixes_for_3641_3620
This commit is contained in:
commit
62f4ed7009
|
@ -1,11 +1,15 @@
|
||||||
## Submitting issues
|
## Submitting issues
|
||||||
|
|
||||||
If you have questions about how to use ownCloud, please direct these to the [mailing list][mailinglist] or our [forum][forum]. We are also available on [IRC][irc].
|
If you have questions about how to install or use ownCloud, please direct these to the [mailing list][mailinglist] or our [forum][forum]. We are also available on [IRC][irc].
|
||||||
|
|
||||||
|
### TL;DR
|
||||||
|
|
||||||
|
* The [issue template can be found here][template] but be aware of the different repositories! See list below.
|
||||||
|
|
||||||
### Guidelines
|
### Guidelines
|
||||||
* Please search the existing issues first, it's likely that your issue was already reported.
|
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
|
||||||
* [Report the issue](https://github.com/owncloud/core/issues/new) using our [template][template], it includes all the informations we need to track down the issue.
|
* This repository is *only* for issues within the ownCloud core code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
|
||||||
* This repository is *only* for issues within the ownCloud core code. Issues in other compontents should be reported in their own repositores:
|
* The issues in other components should be reported in their respective repositories:
|
||||||
- [Android client](https://github.com/owncloud/android/issues)
|
- [Android client](https://github.com/owncloud/android/issues)
|
||||||
- [iOS client](https://github.com/owncloud/ios-issues/issues)
|
- [iOS client](https://github.com/owncloud/ios-issues/issues)
|
||||||
- [Desktop client](https://github.com/owncloud/mirall/issues)
|
- [Desktop client](https://github.com/owncloud/mirall/issues)
|
||||||
|
@ -14,12 +18,12 @@ If you have questions about how to use ownCloud, please direct these to the [mai
|
||||||
- [Calendar](https://github.com/owncloud/calendar/issues)
|
- [Calendar](https://github.com/owncloud/calendar/issues)
|
||||||
- [Contacts](https://github.com/owncloud/contacts/issues)
|
- [Contacts](https://github.com/owncloud/contacts/issues)
|
||||||
- [Mail](https://github.com/owncloud/mail/issues)
|
- [Mail](https://github.com/owncloud/mail/issues)
|
||||||
|
- [Media/Music](https://github.com/owncloud/media/issues)
|
||||||
- [News](https://github.com/owncloud/news/issues)
|
- [News](https://github.com/owncloud/news/issues)
|
||||||
- [Notes](https://github.com/owncloud/notes/issues)
|
- [Notes](https://github.com/owncloud/notes/issues)
|
||||||
- [Shorty](https://github.com/owncloud/shorty/issues)
|
- [Shorty](https://github.com/owncloud/shorty/issues)
|
||||||
- [other apps](https://github.com/owncloud/apps/issues) (e.g. Pictures, Music, Tasks, ...)
|
- [All other apps](https://github.com/owncloud/apps/issues) (e.g. Pictures, Tasks, ...)
|
||||||
|
* Report the issue using our [template][template], it includes all the information we need to track down the issue.
|
||||||
If your issue appears to be a bug, and hasn't been reported, open a new issue.
|
|
||||||
|
|
||||||
Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.
|
Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.
|
||||||
|
|
||||||
|
@ -34,7 +38,7 @@ Thanks for wanting to contribute source code to ownCloud. That's great!
|
||||||
|
|
||||||
Before we're able to merge your code into the ownCloud core, you need to sign our [Contributor Agreement][agreement].
|
Before we're able to merge your code into the ownCloud core, you need to sign our [Contributor Agreement][agreement].
|
||||||
|
|
||||||
Please read the [Developer Manuals][devmanual] to get useful infos like how to create your first application or how to test the ownCloud code with phpunit.
|
Please read the [Developer Manuals][devmanual] to learn how to create your first application or how to test the ownCloud code with PHPUnit.
|
||||||
|
|
||||||
[agreement]: http://owncloud.org/about/contributor-agreement/
|
[agreement]: http://owncloud.org/about/contributor-agreement/
|
||||||
[devmanual]: http://owncloud.org/dev/
|
[devmanual]: http://owncloud.org/dev/
|
||||||
|
|
|
@ -568,10 +568,6 @@ class OC_DB {
|
||||||
|
|
||||||
self::raiseExceptionOnError($definition,'Failed to parse the database definition');
|
self::raiseExceptionOnError($definition,'Failed to parse the database definition');
|
||||||
|
|
||||||
// Die in case something went wrong
|
|
||||||
if( $definition instanceof MDB2_Schema_Error ) {
|
|
||||||
OC_Template::printErrorPage( $definition->getMessage().': '.$definition->getUserInfo() );
|
|
||||||
}
|
|
||||||
if(OC_Config::getValue('dbtype', 'sqlite')==='oci') {
|
if(OC_Config::getValue('dbtype', 'sqlite')==='oci') {
|
||||||
unset($definition['charset']); //or MDB2 tries SHUTDOWN IMMEDIATE
|
unset($definition['charset']); //or MDB2 tries SHUTDOWN IMMEDIATE
|
||||||
$oldname = $definition['name'];
|
$oldname = $definition['name'];
|
||||||
|
@ -921,7 +917,7 @@ class OC_DB {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* check if a result is an error, writes a log entry and throws an exception, works with MDB2 and PDOException
|
* check if a result is an error and throws an exception, works with MDB2 and PDOException
|
||||||
* @param mixed $result
|
* @param mixed $result
|
||||||
* @param string message
|
* @param string message
|
||||||
* @return void
|
* @return void
|
||||||
|
@ -934,7 +930,7 @@ class OC_DB {
|
||||||
} else {
|
} else {
|
||||||
$message .= ', Root cause:' . self::getErrorMessage($result);
|
$message .= ', Root cause:' . self::getErrorMessage($result);
|
||||||
}
|
}
|
||||||
throw new DatabaseException($message, getErrorCode($result));
|
throw new DatabaseException($message, self::getErrorCode($result));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,8 +18,8 @@ class BackgroundWatcher {
|
||||||
if (!is_null(self::$folderMimetype)) {
|
if (!is_null(self::$folderMimetype)) {
|
||||||
return self::$folderMimetype;
|
return self::$folderMimetype;
|
||||||
}
|
}
|
||||||
$query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*mimetypes` WHERE `mimetype` = ?');
|
$sql = 'SELECT `id` FROM `*PREFIX*mimetypes` WHERE `mimetype` = ?';
|
||||||
$result = $query->execute(array('httpd/unix-directory'));
|
$result = \OC_DB::executeAudited($sql, array('httpd/unix-directory'));
|
||||||
$row = $result->fetchRow();
|
$row = $result->fetchRow();
|
||||||
return $row['id'];
|
return $row['id'];
|
||||||
}
|
}
|
||||||
|
@ -59,11 +59,11 @@ class BackgroundWatcher {
|
||||||
*/
|
*/
|
||||||
static private function getNextFileId($previous, $folder) {
|
static private function getNextFileId($previous, $folder) {
|
||||||
if ($folder) {
|
if ($folder) {
|
||||||
$query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `fileid` > ? AND `mimetype` = ' . self::getFolderMimetype() . ' ORDER BY `fileid` ASC', 1);
|
$stmt = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `fileid` > ? AND `mimetype` = ? ORDER BY `fileid` ASC', 1);
|
||||||
} else {
|
} else {
|
||||||
$query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `fileid` > ? AND `mimetype` != ' . self::getFolderMimetype() . ' ORDER BY `fileid` ASC', 1);
|
$stmt = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `fileid` > ? AND `mimetype` != ? ORDER BY `fileid` ASC', 1);
|
||||||
}
|
}
|
||||||
$result = $query->execute(array($previous));
|
$result = \OC_DB::executeAudited($stmt, array($previous,self::getFolderMimetype()));
|
||||||
if ($row = $result->fetchRow()) {
|
if ($row = $result->fetchRow()) {
|
||||||
return $row['fileid'];
|
return $row['fileid'];
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -65,13 +65,11 @@ class Cache {
|
||||||
*/
|
*/
|
||||||
public function getMimetypeId($mime) {
|
public function getMimetypeId($mime) {
|
||||||
if (!isset($this->mimetypeIds[$mime])) {
|
if (!isset($this->mimetypeIds[$mime])) {
|
||||||
$query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*mimetypes` WHERE `mimetype` = ?');
|
$result = \OC_DB::executeAudited('SELECT `id` FROM `*PREFIX*mimetypes` WHERE `mimetype` = ?', array($mime));
|
||||||
$result = $query->execute(array($mime));
|
|
||||||
if ($row = $result->fetchRow()) {
|
if ($row = $result->fetchRow()) {
|
||||||
$this->mimetypeIds[$mime] = $row['id'];
|
$this->mimetypeIds[$mime] = $row['id'];
|
||||||
} else {
|
} else {
|
||||||
$query = \OC_DB::prepare('INSERT INTO `*PREFIX*mimetypes`(`mimetype`) VALUES(?)');
|
$result = \OC_DB::executeAudited('INSERT INTO `*PREFIX*mimetypes`(`mimetype`) VALUES(?)', array($mime));
|
||||||
$query->execute(array($mime));
|
|
||||||
$this->mimetypeIds[$mime] = \OC_DB::insertid('*PREFIX*mimetypes');
|
$this->mimetypeIds[$mime] = \OC_DB::insertid('*PREFIX*mimetypes');
|
||||||
}
|
}
|
||||||
$this->mimetypes[$this->mimetypeIds[$mime]] = $mime;
|
$this->mimetypes[$this->mimetypeIds[$mime]] = $mime;
|
||||||
|
@ -81,8 +79,8 @@ class Cache {
|
||||||
|
|
||||||
public function getMimetype($id) {
|
public function getMimetype($id) {
|
||||||
if (!isset($this->mimetypes[$id])) {
|
if (!isset($this->mimetypes[$id])) {
|
||||||
$query = \OC_DB::prepare('SELECT `mimetype` FROM `*PREFIX*mimetypes` WHERE `id` = ?');
|
$sql = 'SELECT `mimetype` FROM `*PREFIX*mimetypes` WHERE `id` = ?';
|
||||||
$result = $query->execute(array($id));
|
$result = \OC_DB::executeAudited($sql, array($id));
|
||||||
if ($row = $result->fetchRow()) {
|
if ($row = $result->fetchRow()) {
|
||||||
$this->mimetypes[$id] = $row['mimetype'];
|
$this->mimetypes[$id] = $row['mimetype'];
|
||||||
} else {
|
} else {
|
||||||
|
@ -109,10 +107,10 @@ class Cache {
|
||||||
$where = 'WHERE `fileid` = ?';
|
$where = 'WHERE `fileid` = ?';
|
||||||
$params = array($file);
|
$params = array($file);
|
||||||
}
|
}
|
||||||
$query = \OC_DB::prepare(
|
$sql = 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`,
|
||||||
'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `unencrypted_size`, `etag`
|
`storage_mtime`, `encrypted`, `unencrypted_size`, `etag`
|
||||||
FROM `*PREFIX*filecache` ' . $where);
|
FROM `*PREFIX*filecache` ' . $where;
|
||||||
$result = $query->execute($params);
|
$result = \OC_DB::executeAudited($sql, $params);
|
||||||
$data = $result->fetchRow();
|
$data = $result->fetchRow();
|
||||||
|
|
||||||
//FIXME hide this HACK in the next database layer, or just use doctrine and get rid of MDB2 and PDO
|
//FIXME hide this HACK in the next database layer, or just use doctrine and get rid of MDB2 and PDO
|
||||||
|
@ -153,14 +151,10 @@ class Cache {
|
||||||
public function getFolderContents($folder) {
|
public function getFolderContents($folder) {
|
||||||
$fileId = $this->getId($folder);
|
$fileId = $this->getId($folder);
|
||||||
if ($fileId > -1) {
|
if ($fileId > -1) {
|
||||||
$query = \OC_DB::prepare(
|
$sql = 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`,
|
||||||
'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `unencrypted_size`, `etag`
|
`storage_mtime`, `encrypted`, `unencrypted_size`, `etag`
|
||||||
FROM `*PREFIX*filecache` WHERE `parent` = ? ORDER BY `name` ASC');
|
FROM `*PREFIX*filecache` WHERE `parent` = ? ORDER BY `name` ASC';
|
||||||
|
$result = \OC_DB::executeAudited($sql,array($fileId));
|
||||||
$result = $query->execute(array($fileId));
|
|
||||||
if (\OC_DB::isError($result)) {
|
|
||||||
\OCP\Util::writeLog('cache', 'getFolderContents failed: ' . $result->getMessage(), \OCP\Util::ERROR);
|
|
||||||
}
|
|
||||||
$files = $result->fetchAll();
|
$files = $result->fetchAll();
|
||||||
foreach ($files as &$file) {
|
foreach ($files as &$file) {
|
||||||
$file['mimetype'] = $this->getMimetype($file['mimetype']);
|
$file['mimetype'] = $this->getMimetype($file['mimetype']);
|
||||||
|
@ -214,12 +208,9 @@ class Cache {
|
||||||
$params[] = $this->getNumericStorageId();
|
$params[] = $this->getNumericStorageId();
|
||||||
$valuesPlaceholder = array_fill(0, count($queryParts), '?');
|
$valuesPlaceholder = array_fill(0, count($queryParts), '?');
|
||||||
|
|
||||||
$query = \OC_DB::prepare('INSERT INTO `*PREFIX*filecache`(' . implode(', ', $queryParts) . ')'
|
$sql = 'INSERT INTO `*PREFIX*filecache` (' . implode(', ', $queryParts) . ')'
|
||||||
. ' VALUES(' . implode(', ', $valuesPlaceholder) . ')');
|
. ' VALUES (' . implode(', ', $valuesPlaceholder) . ')';
|
||||||
$result = $query->execute($params);
|
\OC_DB::executeAudited($sql, $params);
|
||||||
if (\OC_DB::isError($result)) {
|
|
||||||
\OCP\Util::writeLog('cache', 'Insert to cache failed: ' . $result->getMessage(), \OCP\Util::ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (int)\OC_DB::insertid('*PREFIX*filecache');
|
return (int)\OC_DB::insertid('*PREFIX*filecache');
|
||||||
}
|
}
|
||||||
|
@ -246,9 +237,8 @@ class Cache {
|
||||||
list($queryParts, $params) = $this->buildParts($data);
|
list($queryParts, $params) = $this->buildParts($data);
|
||||||
$params[] = $id;
|
$params[] = $id;
|
||||||
|
|
||||||
$query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET ' . implode(' = ?, ', $queryParts) . '=?'
|
$sql = 'UPDATE `*PREFIX*filecache` SET ' . implode(' = ?, ', $queryParts) . '=? WHERE `fileid` = ?';
|
||||||
. ' WHERE `fileid` = ?');
|
\OC_DB::executeAudited($sql, $params);
|
||||||
$query->execute($params);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -295,9 +285,8 @@ class Cache {
|
||||||
|
|
||||||
$pathHash = md5($file);
|
$pathHash = md5($file);
|
||||||
|
|
||||||
$query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?');
|
$sql = 'SELECT `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?';
|
||||||
$result = $query->execute(array($this->getNumericStorageId(), $pathHash));
|
$result = \OC_DB::executeAudited($sql, array($this->getNumericStorageId(), $pathHash));
|
||||||
|
|
||||||
if ($row = $result->fetchRow()) {
|
if ($row = $result->fetchRow()) {
|
||||||
return $row['fileid'];
|
return $row['fileid'];
|
||||||
} else {
|
} else {
|
||||||
|
@ -346,8 +335,9 @@ class Cache {
|
||||||
$this->remove($child['path']);
|
$this->remove($child['path']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*filecache` WHERE `fileid` = ?');
|
|
||||||
$query->execute(array($entry['fileid']));
|
$sql = 'DELETE FROM `*PREFIX*filecache` WHERE `fileid` = ?';
|
||||||
|
\OC_DB::executeAudited($sql, array($entry['fileid']));
|
||||||
|
|
||||||
$permissionsCache = new Permissions($this->storageId);
|
$permissionsCache = new Permissions($this->storageId);
|
||||||
$permissionsCache->remove($entry['fileid']);
|
$permissionsCache->remove($entry['fileid']);
|
||||||
|
@ -370,32 +360,31 @@ class Cache {
|
||||||
|
|
||||||
if ($sourceData['mimetype'] === 'httpd/unix-directory') {
|
if ($sourceData['mimetype'] === 'httpd/unix-directory') {
|
||||||
//find all child entries
|
//find all child entries
|
||||||
$query = \OC_DB::prepare('SELECT `path`, `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path` LIKE ?');
|
$sql = 'SELECT `path`, `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path` LIKE ?';
|
||||||
$result = $query->execute(array($this->getNumericStorageId(), $source . '/%'));
|
$result = \OC_DB::executeAudited($sql, array($this->getNumericStorageId(), $source . '/%'));
|
||||||
$childEntries = $result->fetchAll();
|
$childEntries = $result->fetchAll();
|
||||||
$sourceLength = strlen($source);
|
$sourceLength = strlen($source);
|
||||||
$query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ? WHERE `fileid` = ?');
|
$query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ? WHERE `fileid` = ?');
|
||||||
|
|
||||||
foreach ($childEntries as $child) {
|
foreach ($childEntries as $child) {
|
||||||
$targetPath = $target . substr($child['path'], $sourceLength);
|
$targetPath = $target . substr($child['path'], $sourceLength);
|
||||||
$query->execute(array($targetPath, md5($targetPath), $child['fileid']));
|
\OC_DB::executeAudited($query, array($targetPath, md5($targetPath), $child['fileid']));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ?, `name` = ?, `parent` =?'
|
$sql = 'UPDATE `*PREFIX*filecache` SET `path` = ?, `path_hash` = ?, `name` = ?, `parent` =? WHERE `fileid` = ?';
|
||||||
. ' WHERE `fileid` = ?');
|
\OC_DB::executeAudited($sql, array($target, md5($target), basename($target), $newParentId, $sourceId));
|
||||||
$query->execute(array($target, md5($target), basename($target), $newParentId, $sourceId));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* remove all entries for files that are stored on the storage from the cache
|
* remove all entries for files that are stored on the storage from the cache
|
||||||
*/
|
*/
|
||||||
public function clear() {
|
public function clear() {
|
||||||
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*filecache` WHERE `storage` = ?');
|
$sql = 'DELETE FROM `*PREFIX*filecache` WHERE `storage` = ?';
|
||||||
$query->execute(array($this->getNumericStorageId()));
|
\OC_DB::executeAudited($sql, array($this->getNumericStorageId()));
|
||||||
|
|
||||||
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*storages` WHERE `id` = ?');
|
$sql = 'DELETE FROM `*PREFIX*storages` WHERE `id` = ?';
|
||||||
$query->execute(array($this->storageId));
|
\OC_DB::executeAudited($sql, array($this->storageId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -408,11 +397,8 @@ class Cache {
|
||||||
$file = $this->normalize($file);
|
$file = $this->normalize($file);
|
||||||
|
|
||||||
$pathHash = md5($file);
|
$pathHash = md5($file);
|
||||||
$query = \OC_DB::prepare('SELECT `size` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?');
|
$sql = 'SELECT `size` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?';
|
||||||
$result = $query->execute(array($this->getNumericStorageId(), $pathHash));
|
$result = \OC_DB::executeAudited($sql, array($this->getNumericStorageId(), $pathHash));
|
||||||
if( \OC_DB::isError($result)) {
|
|
||||||
\OCP\Util::writeLog('cache', 'get status failed: ' . $result->getMessage(), \OCP\Util::ERROR);
|
|
||||||
}
|
|
||||||
if ($row = $result->fetchRow()) {
|
if ($row = $result->fetchRow()) {
|
||||||
if ((int)$row['size'] === -1) {
|
if ((int)$row['size'] === -1) {
|
||||||
return self::SHALLOW;
|
return self::SHALLOW;
|
||||||
|
@ -439,11 +425,9 @@ class Cache {
|
||||||
// normalize pattern
|
// normalize pattern
|
||||||
$pattern = $this->normalize($pattern);
|
$pattern = $this->normalize($pattern);
|
||||||
|
|
||||||
$query = \OC_DB::prepare('
|
$sql = 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`, `unencrypted_size`, `etag`
|
||||||
SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`, `unencrypted_size`, `etag`
|
FROM `*PREFIX*filecache` WHERE `name` LIKE ? AND `storage` = ?';
|
||||||
FROM `*PREFIX*filecache` WHERE `name` LIKE ? AND `storage` = ?'
|
$result = \OC_DB::executeAudited($sql, array($pattern, $this->getNumericStorageId()));
|
||||||
);
|
|
||||||
$result = $query->execute(array($pattern, $this->getNumericStorageId()));
|
|
||||||
$files = array();
|
$files = array();
|
||||||
while ($row = $result->fetchRow()) {
|
while ($row = $result->fetchRow()) {
|
||||||
$row['mimetype'] = $this->getMimetype($row['mimetype']);
|
$row['mimetype'] = $this->getMimetype($row['mimetype']);
|
||||||
|
@ -465,12 +449,10 @@ class Cache {
|
||||||
} else {
|
} else {
|
||||||
$where = '`mimepart` = ?';
|
$where = '`mimepart` = ?';
|
||||||
}
|
}
|
||||||
$query = \OC_DB::prepare('
|
$sql = 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`, `unencrypted_size`, `etag`
|
||||||
SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`, `unencrypted_size`, `etag`
|
FROM `*PREFIX*filecache` WHERE ' . $where . ' AND `storage` = ?';
|
||||||
FROM `*PREFIX*filecache` WHERE ' . $where . ' AND `storage` = ?'
|
|
||||||
);
|
|
||||||
$mimetype = $this->getMimetypeId($mimetype);
|
$mimetype = $this->getMimetypeId($mimetype);
|
||||||
$result = $query->execute(array($mimetype, $this->getNumericStorageId()));
|
$result = \OC_DB::executeAudited($sql, array($mimetype, $this->getNumericStorageId()));
|
||||||
$files = array();
|
$files = array();
|
||||||
while ($row = $result->fetchRow()) {
|
while ($row = $result->fetchRow()) {
|
||||||
$row['mimetype'] = $this->getMimetype($row['mimetype']);
|
$row['mimetype'] = $this->getMimetype($row['mimetype']);
|
||||||
|
@ -507,8 +489,8 @@ class Cache {
|
||||||
if ($id === -1) {
|
if ($id === -1) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
$query = \OC_DB::prepare('SELECT `size` FROM `*PREFIX*filecache` WHERE `parent` = ? AND `storage` = ?');
|
$sql = 'SELECT `size` FROM `*PREFIX*filecache` WHERE `parent` = ? AND `storage` = ?';
|
||||||
$result = $query->execute(array($id, $this->getNumericStorageId()));
|
$result = \OC_DB::executeAudited($sql, array($id, $this->getNumericStorageId()));
|
||||||
$totalSize = 0;
|
$totalSize = 0;
|
||||||
$hasChilds = 0;
|
$hasChilds = 0;
|
||||||
while ($row = $result->fetchRow()) {
|
while ($row = $result->fetchRow()) {
|
||||||
|
@ -534,8 +516,8 @@ class Cache {
|
||||||
* @return int[]
|
* @return int[]
|
||||||
*/
|
*/
|
||||||
public function getAll() {
|
public function getAll() {
|
||||||
$query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ?');
|
$sql = 'SELECT `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ?';
|
||||||
$result = $query->execute(array($this->getNumericStorageId()));
|
$result = \OC_DB::executeAudited($sql, array($this->getNumericStorageId()));
|
||||||
$ids = array();
|
$ids = array();
|
||||||
while ($row = $result->fetchRow()) {
|
while ($row = $result->fetchRow()) {
|
||||||
$ids[] = $row['fileid'];
|
$ids[] = $row['fileid'];
|
||||||
|
@ -555,10 +537,7 @@ class Cache {
|
||||||
public function getIncomplete() {
|
public function getIncomplete() {
|
||||||
$query = \OC_DB::prepare('SELECT `path` FROM `*PREFIX*filecache`'
|
$query = \OC_DB::prepare('SELECT `path` FROM `*PREFIX*filecache`'
|
||||||
. ' WHERE `storage` = ? AND `size` = -1 ORDER BY `fileid` DESC',1);
|
. ' WHERE `storage` = ? AND `size` = -1 ORDER BY `fileid` DESC',1);
|
||||||
$result = $query->execute(array($this->getNumericStorageId()));
|
$result = \OC_DB::executeAudited($query, array($this->getNumericStorageId()));
|
||||||
if (\OC_DB::isError($result)) {
|
|
||||||
\OCP\Util::writeLog('cache', 'getIncomplete failed: ' . $result->getMessage(), \OCP\Util::ERROR);
|
|
||||||
}
|
|
||||||
if ($row = $result->fetchRow()) {
|
if ($row = $result->fetchRow()) {
|
||||||
return $row['path'];
|
return $row['path'];
|
||||||
} else {
|
} else {
|
||||||
|
@ -573,8 +552,8 @@ class Cache {
|
||||||
* @return array, first element holding the storage id, second the path
|
* @return array, first element holding the storage id, second the path
|
||||||
*/
|
*/
|
||||||
static public function getById($id) {
|
static public function getById($id) {
|
||||||
$query = \OC_DB::prepare('SELECT `storage`, `path` FROM `*PREFIX*filecache` WHERE `fileid` = ?');
|
$sql = 'SELECT `storage`, `path` FROM `*PREFIX*filecache` WHERE `fileid` = ?';
|
||||||
$result = $query->execute(array($id));
|
$result = \OC_DB::executeAudited($sql, array($id));
|
||||||
if ($row = $result->fetchRow()) {
|
if ($row = $result->fetchRow()) {
|
||||||
$numericId = $row['storage'];
|
$numericId = $row['storage'];
|
||||||
$path = $row['path'];
|
$path = $row['path'];
|
||||||
|
|
|
@ -26,8 +26,8 @@ class Legacy {
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
function getCount() {
|
function getCount() {
|
||||||
$query = \OC_DB::prepare('SELECT COUNT(`id`) AS `count` FROM `*PREFIX*fscache` WHERE `user` = ?');
|
$sql = 'SELECT COUNT(`id`) AS `count` FROM `*PREFIX*fscache` WHERE `user` = ?';
|
||||||
$result = $query->execute(array($this->user));
|
$result = \OC_DB::executeAudited($sql, array($this->user));
|
||||||
if ($row = $result->fetchRow()) {
|
if ($row = $result->fetchRow()) {
|
||||||
return $row['count'];
|
return $row['count'];
|
||||||
} else {
|
} else {
|
||||||
|
@ -74,11 +74,11 @@ class Legacy {
|
||||||
*/
|
*/
|
||||||
function get($path) {
|
function get($path) {
|
||||||
if (is_numeric($path)) {
|
if (is_numeric($path)) {
|
||||||
$query = \OC_DB::prepare('SELECT * FROM `*PREFIX*fscache` WHERE `id` = ?');
|
$sql = 'SELECT * FROM `*PREFIX*fscache` WHERE `id` = ?';
|
||||||
} else {
|
} else {
|
||||||
$query = \OC_DB::prepare('SELECT * FROM `*PREFIX*fscache` WHERE `path` = ?');
|
$sql = 'SELECT * FROM `*PREFIX*fscache` WHERE `path` = ?';
|
||||||
}
|
}
|
||||||
$result = $query->execute(array($path));
|
$result = \OC_DB::executeAudited($sql, array($path));
|
||||||
$data = $result->fetchRow();
|
$data = $result->fetchRow();
|
||||||
$data['etag'] = $this->getEtag($data['path'], $data['user']);
|
$data['etag'] = $this->getEtag($data['path'], $data['user']);
|
||||||
return $data;
|
return $data;
|
||||||
|
@ -111,7 +111,7 @@ class Legacy {
|
||||||
if(is_null($query)){
|
if(is_null($query)){
|
||||||
$query = \OC_DB::prepare('SELECT `propertyvalue` FROM `*PREFIX*properties` WHERE `userid` = ? AND `propertypath` = ? AND `propertyname` = \'{DAV:}getetag\'');
|
$query = \OC_DB::prepare('SELECT `propertyvalue` FROM `*PREFIX*properties` WHERE `userid` = ? AND `propertypath` = ? AND `propertyname` = \'{DAV:}getetag\'');
|
||||||
}
|
}
|
||||||
$result = $query->execute(array($user, '/' . $relativePath));
|
$result = \OC_DB::executeAudited($query,array($user, '/' . $relativePath));
|
||||||
if ($row = $result->fetchRow()) {
|
if ($row = $result->fetchRow()) {
|
||||||
return trim($row['propertyvalue'], '"');
|
return trim($row['propertyvalue'], '"');
|
||||||
} else {
|
} else {
|
||||||
|
@ -126,8 +126,7 @@ class Legacy {
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
function getChildren($id) {
|
function getChildren($id) {
|
||||||
$query = \OC_DB::prepare('SELECT * FROM `*PREFIX*fscache` WHERE `parent` = ?');
|
$result = \OC_DB::executeAudited('SELECT * FROM `*PREFIX*fscache` WHERE `parent` = ?', array($id));
|
||||||
$result = $query->execute(array($id));
|
|
||||||
$data = $result->fetchAll();
|
$data = $result->fetchAll();
|
||||||
foreach ($data as $i => $item) {
|
foreach ($data as $i => $item) {
|
||||||
$data[$i]['etag'] = $this->getEtag($item['path'], $item['user']);
|
$data[$i]['etag'] = $this->getEtag($item['path'], $item['user']);
|
||||||
|
|
|
@ -33,8 +33,8 @@ class Permissions {
|
||||||
* @return int (-1 if file no permissions set)
|
* @return int (-1 if file no permissions set)
|
||||||
*/
|
*/
|
||||||
public function get($fileId, $user) {
|
public function get($fileId, $user) {
|
||||||
$query = \OC_DB::prepare('SELECT `permissions` FROM `*PREFIX*permissions` WHERE `user` = ? AND `fileid` = ?');
|
$sql = 'SELECT `permissions` FROM `*PREFIX*permissions` WHERE `user` = ? AND `fileid` = ?';
|
||||||
$result = $query->execute(array($user, $fileId));
|
$result = \OC_DB::executeAudited($sql, array($user, $fileId));
|
||||||
if ($row = $result->fetchRow()) {
|
if ($row = $result->fetchRow()) {
|
||||||
return $row['permissions'];
|
return $row['permissions'];
|
||||||
} else {
|
} else {
|
||||||
|
@ -51,13 +51,11 @@ class Permissions {
|
||||||
*/
|
*/
|
||||||
public function set($fileId, $user, $permissions) {
|
public function set($fileId, $user, $permissions) {
|
||||||
if (self::get($fileId, $user) !== -1) {
|
if (self::get($fileId, $user) !== -1) {
|
||||||
$query = \OC_DB::prepare('UPDATE `*PREFIX*permissions` SET `permissions` = ?'
|
$sql = 'UPDATE `*PREFIX*permissions` SET `permissions` = ? WHERE `user` = ? AND `fileid` = ?';
|
||||||
. ' WHERE `user` = ? AND `fileid` = ?');
|
|
||||||
} else {
|
} else {
|
||||||
$query = \OC_DB::prepare('INSERT INTO `*PREFIX*permissions`(`permissions`, `user`, `fileid`)'
|
$sql = 'INSERT INTO `*PREFIX*permissions`(`permissions`, `user`, `fileid`) VALUES(?, ?,? )';
|
||||||
. ' VALUES(?, ?,? )');
|
|
||||||
}
|
}
|
||||||
$query->execute(array($permissions, $user, $fileId));
|
\OC_DB::executeAudited($sql, array($permissions, $user, $fileId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -75,9 +73,9 @@ class Permissions {
|
||||||
$params[] = $user;
|
$params[] = $user;
|
||||||
$inPart = implode(', ', array_fill(0, count($fileIds), '?'));
|
$inPart = implode(', ', array_fill(0, count($fileIds), '?'));
|
||||||
|
|
||||||
$query = \OC_DB::prepare('SELECT `fileid`, `permissions` FROM `*PREFIX*permissions`'
|
$sql = 'SELECT `fileid`, `permissions` FROM `*PREFIX*permissions`'
|
||||||
. ' WHERE `fileid` IN (' . $inPart . ') AND `user` = ?');
|
. ' WHERE `fileid` IN (' . $inPart . ') AND `user` = ?';
|
||||||
$result = $query->execute($params);
|
$result = \OC_DB::executeAudited($sql, $params);
|
||||||
$filePermissions = array();
|
$filePermissions = array();
|
||||||
while ($row = $result->fetchRow()) {
|
while ($row = $result->fetchRow()) {
|
||||||
$filePermissions[$row['fileid']] = $row['permissions'];
|
$filePermissions[$row['fileid']] = $row['permissions'];
|
||||||
|
@ -93,11 +91,12 @@ class Permissions {
|
||||||
* @return int[]
|
* @return int[]
|
||||||
*/
|
*/
|
||||||
public function getDirectoryPermissions($parentId, $user) {
|
public function getDirectoryPermissions($parentId, $user) {
|
||||||
$query = \OC_DB::prepare('SELECT `*PREFIX*permissions`.`fileid`, `permissions`
|
$sql = 'SELECT `*PREFIX*permissions`.`fileid`, `permissions`
|
||||||
FROM `*PREFIX*permissions` INNER JOIN `*PREFIX*filecache` ON `*PREFIX*permissions`.`fileid` = `*PREFIX*filecache`.`fileid`
|
FROM `*PREFIX*permissions`
|
||||||
WHERE `*PREFIX*filecache`.`parent` = ? AND `*PREFIX*permissions`.`user` = ?');
|
INNER JOIN `*PREFIX*filecache` ON `*PREFIX*permissions`.`fileid` = `*PREFIX*filecache`.`fileid`
|
||||||
|
WHERE `*PREFIX*filecache`.`parent` = ? AND `*PREFIX*permissions`.`user` = ?';
|
||||||
|
|
||||||
$result = $query->execute(array($parentId, $user));
|
$result = \OC_DB::executeAudited($sql, array($parentId, $user));
|
||||||
$filePermissions = array();
|
$filePermissions = array();
|
||||||
while ($row = $result->fetchRow()) {
|
while ($row = $result->fetchRow()) {
|
||||||
$filePermissions[$row['fileid']] = $row['permissions'];
|
$filePermissions[$row['fileid']] = $row['permissions'];
|
||||||
|
@ -113,18 +112,17 @@ class Permissions {
|
||||||
*/
|
*/
|
||||||
public function remove($fileId, $user = null) {
|
public function remove($fileId, $user = null) {
|
||||||
if (is_null($user)) {
|
if (is_null($user)) {
|
||||||
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*permissions` WHERE `fileid` = ?');
|
\OC_DB::executeAudited('DELETE FROM `*PREFIX*permissions` WHERE `fileid` = ?', array($fileId));
|
||||||
$query->execute(array($fileId));
|
|
||||||
} else {
|
} else {
|
||||||
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*permissions` WHERE `fileid` = ? AND `user` = ?');
|
$sql = 'DELETE FROM `*PREFIX*permissions` WHERE `fileid` = ? AND `user` = ?';
|
||||||
$query->execute(array($fileId, $user));
|
\OC_DB::executeAudited($sql, array($fileId, $user));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function removeMultiple($fileIds, $user) {
|
public function removeMultiple($fileIds, $user) {
|
||||||
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*permissions` WHERE `fileid` = ? AND `user` = ?');
|
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*permissions` WHERE `fileid` = ? AND `user` = ?');
|
||||||
foreach ($fileIds as $fileId) {
|
foreach ($fileIds as $fileId) {
|
||||||
$query->execute(array($fileId, $user));
|
\OC_DB::executeAudited($query, array($fileId, $user));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,8 +132,8 @@ class Permissions {
|
||||||
* @param int $fileId
|
* @param int $fileId
|
||||||
*/
|
*/
|
||||||
public function getUsers($fileId) {
|
public function getUsers($fileId) {
|
||||||
$query = \OC_DB::prepare('SELECT `user` FROM `*PREFIX*permissions` WHERE `fileid` = ?');
|
$sql = 'SELECT `user` FROM `*PREFIX*permissions` WHERE `fileid` = ?';
|
||||||
$result = $query->execute(array($fileId));
|
$result = \OC_DB::executeAudited($sql, array($fileId));
|
||||||
$users = array();
|
$users = array();
|
||||||
while ($row = $result->fetchRow()) {
|
while ($row = $result->fetchRow()) {
|
||||||
$users[] = $row['user'];
|
$users[] = $row['user'];
|
||||||
|
|
|
@ -32,13 +32,13 @@ class Storage {
|
||||||
$this->storageId = md5($this->storageId);
|
$this->storageId = md5($this->storageId);
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = \OC_DB::prepare('SELECT `numeric_id` FROM `*PREFIX*storages` WHERE `id` = ?');
|
$sql = 'SELECT `numeric_id` FROM `*PREFIX*storages` WHERE `id` = ?';
|
||||||
$result = $query->execute(array($this->storageId));
|
$result = \OC_DB::executeAudited($sql, array($this->storageId));
|
||||||
if ($row = $result->fetchRow()) {
|
if ($row = $result->fetchRow()) {
|
||||||
$this->numericId = $row['numeric_id'];
|
$this->numericId = $row['numeric_id'];
|
||||||
} else {
|
} else {
|
||||||
$query = \OC_DB::prepare('INSERT INTO `*PREFIX*storages`(`id`) VALUES(?)');
|
$sql = 'INSERT INTO `*PREFIX*storages` (`id`) VALUES(?)';
|
||||||
$query->execute(array($this->storageId));
|
\OC_DB::executeAudited($sql, array($this->storageId));
|
||||||
$this->numericId = \OC_DB::insertid('*PREFIX*storages');
|
$this->numericId = \OC_DB::insertid('*PREFIX*storages');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,8 +48,9 @@ class Storage {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getStorageId($numericId) {
|
public static function getStorageId($numericId) {
|
||||||
$query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*storages` WHERE `numeric_id` = ?');
|
|
||||||
$result = $query->execute(array($numericId));
|
$sql = 'SELECT `id` FROM `*PREFIX*storages` WHERE `numeric_id` = ?';
|
||||||
|
$result = \OC_DB::executeAudited($sql, array($numericId));
|
||||||
if ($row = $result->fetchRow()) {
|
if ($row = $result->fetchRow()) {
|
||||||
return $row['id'];
|
return $row['id'];
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -78,7 +78,7 @@ class Upgrade {
|
||||||
VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
|
VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
|
||||||
}
|
}
|
||||||
if (!$this->inCache($data['storage'], $data['path_hash'], $data['id'])) {
|
if (!$this->inCache($data['storage'], $data['path_hash'], $data['id'])) {
|
||||||
$insertQuery->execute(array($data['id'], $data['storage'],
|
\OC_DB::executeAudited($insertQuery, array($data['id'], $data['storage'],
|
||||||
$data['path'], $data['path_hash'], $data['parent'], $data['name'],
|
$data['path'], $data['path_hash'], $data['parent'], $data['name'],
|
||||||
$data['mimetype'], $data['mimepart'], $data['size'], $data['mtime'], $data['encrypted'], $data['etag']));
|
$data['mimetype'], $data['mimepart'], $data['size'], $data['mtime'], $data['encrypted'], $data['etag']));
|
||||||
}
|
}
|
||||||
|
@ -97,7 +97,7 @@ class Upgrade {
|
||||||
if(is_null($query)) {
|
if(is_null($query)) {
|
||||||
$query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE (`storage` = ? AND `path_hash` = ?) OR `fileid` = ?');
|
$query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE (`storage` = ? AND `path_hash` = ?) OR `fileid` = ?');
|
||||||
}
|
}
|
||||||
$result = $query->execute(array($storage, $pathHash, $id));
|
$result = \OC_DB::executeAudited($query, array($storage, $pathHash, $id));
|
||||||
return (bool)$result->fetchRow();
|
return (bool)$result->fetchRow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,11 +53,9 @@ class Mapper
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($isLogicPath) {
|
if ($isLogicPath) {
|
||||||
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*file_map` WHERE `logic_path` LIKE ?');
|
\OC_DB::executeAudited('DELETE FROM `*PREFIX*file_map` WHERE `logic_path` LIKE ?', array($path));
|
||||||
$query->execute(array($path));
|
|
||||||
} else {
|
} else {
|
||||||
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*file_map` WHERE `physic_path` LIKE ?');
|
\OC_DB::executeAudited('DELETE FROM `*PREFIX*file_map` WHERE `physic_path` LIKE ?', array($path));
|
||||||
$query->execute(array($path));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,8 +71,8 @@ class Mapper
|
||||||
$physicPath1 = $this->logicToPhysical($path1, true);
|
$physicPath1 = $this->logicToPhysical($path1, true);
|
||||||
$physicPath2 = $this->logicToPhysical($path2, true);
|
$physicPath2 = $this->logicToPhysical($path2, true);
|
||||||
|
|
||||||
$query = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `logic_path` LIKE ?');
|
$sql = 'SELECT * FROM `*PREFIX*file_map` WHERE `logic_path` LIKE ?';
|
||||||
$result = $query->execute(array($path1.'%'));
|
$result = \OC_DB::executeAudited($sql, array($path1.'%'));
|
||||||
$updateQuery = \OC_DB::prepare('UPDATE `*PREFIX*file_map`'
|
$updateQuery = \OC_DB::prepare('UPDATE `*PREFIX*file_map`'
|
||||||
.' SET `logic_path` = ?'
|
.' SET `logic_path` = ?'
|
||||||
.' , `logic_path_hash` = ?'
|
.' , `logic_path_hash` = ?'
|
||||||
|
@ -88,7 +86,8 @@ class Mapper
|
||||||
$newPhysic = $physicPath2.$this->stripRootFolder($currentPhysic, $physicPath1);
|
$newPhysic = $physicPath2.$this->stripRootFolder($currentPhysic, $physicPath1);
|
||||||
if ($path1 !== $currentLogic) {
|
if ($path1 !== $currentLogic) {
|
||||||
try {
|
try {
|
||||||
$updateQuery->execute(array($newLogic, md5($newLogic), $newPhysic, md5($newPhysic), $currentLogic));
|
\OC_DB::executeAudited($updateQuery, array($newLogic, md5($newLogic), $newPhysic, md5($newPhysic),
|
||||||
|
$currentLogic));
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
error_log('Mapper::Copy failed '.$currentLogic.' -> '.$newLogic.'\n'.$e);
|
error_log('Mapper::Copy failed '.$currentLogic.' -> '.$newLogic.'\n'.$e);
|
||||||
throw $e;
|
throw $e;
|
||||||
|
@ -123,8 +122,8 @@ class Mapper
|
||||||
|
|
||||||
private function resolveLogicPath($logicPath) {
|
private function resolveLogicPath($logicPath) {
|
||||||
$logicPath = $this->stripLast($logicPath);
|
$logicPath = $this->stripLast($logicPath);
|
||||||
$query = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `logic_path_hash` = ?');
|
$sql = 'SELECT * FROM `*PREFIX*file_map` WHERE `logic_path_hash` = ?';
|
||||||
$result = $query->execute(array(md5($logicPath)));
|
$result = \OC_DB::executeAudited($sql, array(md5($logicPath)));
|
||||||
$result = $result->fetchRow();
|
$result = $result->fetchRow();
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -135,8 +134,8 @@ class Mapper
|
||||||
|
|
||||||
private function resolvePhysicalPath($physicalPath) {
|
private function resolvePhysicalPath($physicalPath) {
|
||||||
$physicalPath = $this->stripLast($physicalPath);
|
$physicalPath = $this->stripLast($physicalPath);
|
||||||
$query = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `physic_path_hash` = ?');
|
$sql = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `physic_path_hash` = ?');
|
||||||
$result = $query->execute(array(md5($physicalPath)));
|
$result = \OC_DB::executeAudited($sql, array(md5($physicalPath)));
|
||||||
$result = $result->fetchRow();
|
$result = $result->fetchRow();
|
||||||
|
|
||||||
return $result['logic_path'];
|
return $result['logic_path'];
|
||||||
|
@ -163,8 +162,9 @@ class Mapper
|
||||||
}
|
}
|
||||||
|
|
||||||
private function insert($logicPath, $physicalPath) {
|
private function insert($logicPath, $physicalPath) {
|
||||||
$query = \OC_DB::prepare('INSERT INTO `*PREFIX*file_map`(`logic_path`, `physic_path`, `logic_path_hash`, `physic_path_hash`) VALUES(?, ?, ?, ?)');
|
$sql = 'INSERT INTO `*PREFIX*file_map` (`logic_path`, `physic_path`, `logic_path_hash`, `physic_path_hash`)
|
||||||
$query->execute(array($logicPath, $physicalPath, md5($logicPath), md5($physicalPath)));
|
VALUES (?, ?, ?, ?)';
|
||||||
|
\OC_DB::executeAudited($sql, array($logicPath, $physicalPath, md5($logicPath), md5($physicalPath)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function slugifyPath($path, $index=null) {
|
public function slugifyPath($path, $index=null) {
|
||||||
|
|
|
@ -547,7 +547,7 @@ class OC_Template{
|
||||||
$error_msg = '['.$exception->getCode().'] '.$error_msg;
|
$error_msg = '['.$exception->getCode().'] '.$error_msg;
|
||||||
}
|
}
|
||||||
$hint = $exception->getTraceAsString();
|
$hint = $exception->getTraceAsString();
|
||||||
while ($exception = $exception->previous()) {
|
while (method_exists($exception,'previous') && $exception = $exception->previous()) {
|
||||||
$error_msg .= '<br/>Caused by: ';
|
$error_msg .= '<br/>Caused by: ';
|
||||||
if ($exception->getCode()) {
|
if ($exception->getCode()) {
|
||||||
$error_msg .= '['.$exception->getCode().'] ';
|
$error_msg .= '['.$exception->getCode().'] ';
|
||||||
|
|
Loading…
Reference in New Issue