mirror of
https://github.com/nextcloud/passman.git
synced 2025-09-13 08:24:19 +08:00
use less memory hungry account mover strategy
Signed-off-by: binsky <timo@binsky.org>
This commit is contained in:
parent
a45d33d89e
commit
2ec84c778a
3 changed files with 11 additions and 11 deletions
|
@ -107,8 +107,9 @@ class AdminController extends ApiController {
|
|||
$this->vaultService->updateVault($vault);
|
||||
}
|
||||
|
||||
$files = $this->fileService->getFilesFromUser($source_account);
|
||||
foreach ($files as $file) {
|
||||
$fileGuids = $this->fileService->getFileGuidsFromUser($source_account);
|
||||
foreach ($fileGuids as $fileGuid) {
|
||||
$file = $this->fileService->getFileByGuid($fileGuid, $source_account);
|
||||
$file->setUserId($destination_account);
|
||||
$this->fileService->updateFile($file);
|
||||
}
|
||||
|
|
|
@ -123,14 +123,13 @@ class FileMapper extends QBMapper {
|
|||
return $this->update($file);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $user_id
|
||||
* @return Entity[]
|
||||
*/
|
||||
public function getFilesFromUser(string $user_id) {
|
||||
public function getFileGuidsFromUser(string $user_id) {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->select('*')
|
||||
$qb->select('guid')
|
||||
->from(self::TABLE_NAME)
|
||||
->where($qb->expr()->eq('user_id', $qb->createNamedParameter($user_id, IQueryBuilder::PARAM_STR)));
|
||||
|
||||
|
|
|
@ -114,17 +114,17 @@ class FileService {
|
|||
}
|
||||
|
||||
/**
|
||||
* Update file
|
||||
* Get array of all file guids
|
||||
*
|
||||
* @param string $userId
|
||||
* @return File[]
|
||||
* @return string[]
|
||||
* @throws Exception
|
||||
*/
|
||||
public function getFilesFromUser(string $userId) {
|
||||
$files = $this->fileMapper->getFilesFromUser($userId);
|
||||
public function getFileGuidsFromUser(string $userId) {
|
||||
$files = $this->fileMapper->getFileGuidsFromUser($userId);
|
||||
$results = array();
|
||||
foreach ($files as $file) {
|
||||
array_push($results, $this->encryptService->decryptFile($file));
|
||||
foreach ($files as $fileGuid) {
|
||||
array_push($results, $fileGuid->getGuid());
|
||||
}
|
||||
return $results;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue