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