mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-15 05:53:13 +00:00
@@ -79,12 +79,14 @@ class patch_390alpha1b implements patchInterface
|
||||
$n = 0;
|
||||
$em = $app['EM'];
|
||||
$em->getEventManager()->removeEventSubscriber(new TimestampableListener());
|
||||
$basketRepository = $em->getRepository('Alchemy\Phrasea\Model\Entities\Basket');
|
||||
|
||||
foreach ($rs as $row) {
|
||||
|
||||
$sql = 'SELECT count(id) as todo FROM order_elements
|
||||
$sql = 'SELECT count(id) as todo
|
||||
FROM order_elements
|
||||
WHERE deny = NULL
|
||||
AND order_id = :id';
|
||||
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute([':id' => $row['id']]);
|
||||
$todo = $stmt->fetch(\PDO::FETCH_ASSOC);
|
||||
@@ -96,13 +98,14 @@ class patch_390alpha1b implements patchInterface
|
||||
->setOrderUsage($row['usage'])
|
||||
->setDeadline(new \DateTime($row['deadline']))
|
||||
->setCreatedOn(new \DateTime($row['created_on']))
|
||||
->setBasket($row['ssel_id']);
|
||||
->setBasket($basketRepository->find($row['ssel_id']));
|
||||
|
||||
$em->persist($order);
|
||||
|
||||
$sql = 'SELECT base_id, record_id, order_master_id, deny
|
||||
FROM order_elements
|
||||
WHERE order_id = :id';
|
||||
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute([':id' => $row['id']]);
|
||||
$elements = $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||
|
@@ -83,10 +83,10 @@ class patch_390alpha2a implements patchInterface
|
||||
private function updateUsers(EntityManager $em, $conn)
|
||||
{
|
||||
$sql = 'SELECT activite, adresse, create_db, canchgftpprofil, canchgprofil, ville,
|
||||
societe, pays, usr_mail, fax, usr_prenom, geonameid, invite, fonction, last_conn, lastModel,
|
||||
usr_nom, ldap_created, locale, usr_login, mail_locked, mail_notifications, nonce, usr_password, push_list,
|
||||
request_notifications, salted_password, usr_sexe, tel, timezone, cpostal, usr_creationdate, usr_modificationdate
|
||||
FROM usr WHERE model_of = 0';
|
||||
societe, pays, usr_mail, fax, usr_prenom, geonameid, invite, fonction, last_conn, lastModel,
|
||||
usr_nom, ldap_created, locale, usr_login, mail_locked, mail_notifications, nonce, usr_password, push_list,
|
||||
request_notifications, salted_password, usr_sexe, tel, timezone, cpostal, usr_creationdate, usr_modificationdate
|
||||
FROM usr';
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute();
|
||||
$rows = $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||
@@ -188,13 +188,15 @@ class patch_390alpha2a implements patchInterface
|
||||
$repository = $em->getRepository('Alchemy\Phrasea\Model\Entities\User');
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$user = $repository->findOneByLogin($row['usr_login']);
|
||||
$template = $repository->findOneByLogin($row['usr_login']);
|
||||
|
||||
if (null === $template = $repository->find($row['model_of'])) {
|
||||
$em->remove($user);
|
||||
if (null === $loginOwner = $this->getLoginFromId($conn, $row['model_of'])) {
|
||||
// remove template with no owner
|
||||
$em->remove($template);
|
||||
} else {
|
||||
$user->setModelOf($template);
|
||||
$em->persist($user);
|
||||
$owner = $repository->findOneByLogin($loginOwner);
|
||||
$template->setModelOf($owner);
|
||||
$em->persist($owner);
|
||||
}
|
||||
|
||||
$n++;
|
||||
@@ -208,4 +210,25 @@ class patch_390alpha2a implements patchInterface
|
||||
$em->flush();
|
||||
$em->clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns user login from its id.
|
||||
*/
|
||||
private function getLoginFromId($conn, $id)
|
||||
{
|
||||
$sql = "SELECT usr_login
|
||||
FROM usr
|
||||
WHERE usr_id = :id";
|
||||
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute([':id' => $id]);
|
||||
$row = $stmt->fetch(\PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
if (count($row) === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $row['usr_login'];
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user