diff --git a/lib/Alchemy/Phrasea/Command/Developer/IniReset.php b/lib/Alchemy/Phrasea/Command/Developer/IniReset.php index fcfa769328..8ba98005bd 100644 --- a/lib/Alchemy/Phrasea/Command/Developer/IniReset.php +++ b/lib/Alchemy/Phrasea/Command/Developer/IniReset.php @@ -207,7 +207,7 @@ class IniReset extends Command } $output->writeln('Upgrading from v3.1 to v'.Version::getNumber()); - $cmd = 'php ' . __DIR__ . '/../../../../../bin/setup system:upgrade -y -f'; + $cmd = 'php ' . __DIR__ . '/../../../../../bin/setup system:upgrade -y -f -v'; $process = new Process($cmd); $process->run(function ($type, $buffer) { if ('err' === $type) { diff --git a/lib/Alchemy/Phrasea/Model/Repositories/UserRepository.php b/lib/Alchemy/Phrasea/Model/Repositories/UserRepository.php index aeebf18b85..cadb199b4a 100644 --- a/lib/Alchemy/Phrasea/Model/Repositories/UserRepository.php +++ b/lib/Alchemy/Phrasea/Model/Repositories/UserRepository.php @@ -50,6 +50,16 @@ class UserRepository extends EntityRepository return $this->findOneBy(['login' => $login]); } + /** + * Finds deleted users. + * + * @return User[] + */ + public function findDeleted() + { + return $this->findBy(['deleted' => true]); + } + /** * Finds a user by email. * diff --git a/lib/classes/patch/386alpha4a.php b/lib/classes/patch/386alpha4a.php index 4d90cc407f..d5d91bd410 100644 --- a/lib/classes/patch/386alpha4a.php +++ b/lib/classes/patch/386alpha4a.php @@ -58,23 +58,14 @@ class patch_386alpha4a implements patchInterface */ public function apply(base $appbox, Application $app) { - $sql = 'SELECT usr_id FROM usr WHERE usr_login LIKE "(#deleted_%"'; - $stmt = $appbox->get_connection()->prepare($sql); - $stmt->execute(); - - $repo = $app['EM']->getRepository('Entities\UsrList'); - - $users = $stmt->fetchAll(\PDO::FETCH_ASSOC); - - foreach ($users as $user) { - foreach ($repo->findUserLists(new \User_Adapter($user['usr_id'], $app)) as $list) { + $repo = $app['EM']->getRepository('Phraseanet:UsrList'); + foreach ($app['EM']->getRepository('Phraseanet:User')->findDeleted() as $user) { + foreach ($repo->findUserLists($user) as $list) { $app['EM']->remove($list); } $app['EM']->flush(); } - $stmt->closeCursor(); - return true; } }