summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2013-10-25 15:38:35 +0200
committerVincent Petry <pvince81@owncloud.com>2013-10-25 15:38:35 +0200
commite246e2b66973e99226f5db3544af33b5f665c6bb (patch)
tree7d0beb873ae24b9f5a11a5dca992248363ad4d4e /apps
parent3fc232370e00df1d39638697daf8e8c1af8fe8dc (diff)
downloadnextcloud-server-e246e2b66973e99226f5db3544af33b5f665c6bb.tar.gz
nextcloud-server-e246e2b66973e99226f5db3544af33b5f665c6bb.zip
Fixed encryption migration when entry is missing in DB
When resetting the DB and some users still have encrypted files, the migration state isn't read properly becaue the migration entries are missing. This causes the wrong file size to be returned. This fix inserts the missing migration entry when this condition is met. Fixes #5541
Diffstat (limited to 'apps')
-rw-r--r--apps/files_encryption/lib/util.php13
1 files changed, 12 insertions, 1 deletions
diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php
index 0d34af043a1..5e855abd973 100644
--- a/apps/files_encryption/lib/util.php
+++ b/apps/files_encryption/lib/util.php
@@ -205,7 +205,7 @@ class Util {
$this->userId,
'server-side',
0,
- 0
+ self::MIGRATION_OPEN
);
$query = \OCP\DB::prepare($sql);
$query->execute($args);
@@ -1285,6 +1285,17 @@ class Util {
// If no record is found
if (empty($migrationStatus)) {
\OCP\Util::writeLog('Encryption library', "Could not get migration status for " . $this->userId . ", no record found", \OCP\Util::ERROR);
+ // insert missing entry in DB with status open
+ $sql = 'INSERT INTO `*PREFIX*encryption` (`uid`,`mode`,`recovery_enabled`,`migration_status`) VALUES (?,?,?,?)';
+ $args = array(
+ $this->userId,
+ 'server-side',
+ 0,
+ self::MIGRATION_OPEN
+ );
+ $query = \OCP\DB::prepare($sql);
+ $query->execute($args);
+
return self::MIGRATION_OPEN;
// If a record is found
} else {