Skip to content

Commit 4082691

Browse files
authored
Merge pull request #60344 from cuppett/cuppett/refactor-encryption-wrapper
fix(encryption): Refactor EncryptionWrapper
2 parents 1277dca + 52f7e3d commit 4082691

1 file changed

Lines changed: 35 additions & 25 deletions

File tree

lib/private/Encryption/EncryptionWrapper.php

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -57,32 +57,42 @@ public function wrapStorage(string $mountPoint, IStorage $storage, IMountPoint $
5757
'mount' => $mount
5858
];
5959

60-
if ($force || (!$storage->instanceOfStorage(IDisableEncryptionStorage::class) && $mountPoint !== '/')) {
61-
$user = Server::get(IUserSession::class)->getUser();
62-
$mountManager = Filesystem::getMountManager();
63-
$uid = $user ? $user->getUID() : null;
64-
$fileHelper = Server::get(IFile::class);
65-
$keyStorage = Server::get(EncryptionKeysStorage::class);
60+
// Only evaluate other conditions if not forced
61+
if (!$force) {
62+
// If a disabled storage medium, return basic storage
63+
if ($storage->instanceOfStorage(IDisableEncryptionStorage::class)) {
64+
return $storage;
65+
}
6666

67-
$util = new Util(
68-
new View(),
69-
Server::get(IUserManager::class),
70-
Server::get(IGroupManager::class),
71-
Server::get(IConfig::class)
72-
);
73-
return new Encryption(
74-
$parameters,
75-
$this->manager,
76-
$util,
77-
$this->logger,
78-
$fileHelper,
79-
$uid,
80-
$keyStorage,
81-
$mountManager,
82-
$this->arrayCache
83-
);
84-
} else {
85-
return $storage;
67+
// Root mount point handling: skip encryption wrapper
68+
if ($mountPoint === '/') {
69+
return $storage;
70+
}
8671
}
72+
73+
// Apply encryption wrapper
74+
$user = Server::get(IUserSession::class)->getUser();
75+
$mountManager = Filesystem::getMountManager();
76+
$uid = $user ? $user->getUID() : null;
77+
$fileHelper = Server::get(IFile::class);
78+
$keyStorage = Server::get(EncryptionKeysStorage::class);
79+
80+
$util = new Util(
81+
new View(),
82+
Server::get(IUserManager::class),
83+
Server::get(IGroupManager::class),
84+
Server::get(IConfig::class)
85+
);
86+
return new Encryption(
87+
$parameters,
88+
$this->manager,
89+
$util,
90+
$this->logger,
91+
$fileHelper,
92+
$uid,
93+
$keyStorage,
94+
$mountManager,
95+
$this->arrayCache
96+
);
8797
}
8898
}

0 commit comments

Comments
 (0)