mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-17 23:13:15 +00:00
Merge branch '3.6' of github.com:alchemy-fr/Phraseanet into 3.6
This commit is contained in:
@@ -23,10 +23,12 @@ class BasketElementRepository extends EntityRepository
|
||||
LEFT JOIN e.validation_datas vd
|
||||
LEFT JOIN b.validation s
|
||||
LEFT JOIN s.participants p
|
||||
WHERE b.usr_id = :usr_id AND e.id = :element_id';
|
||||
WHERE (b.usr_id = :usr_id OR p.usr_id = :same_usr_id)
|
||||
AND e.id = :element_id';
|
||||
|
||||
$params = array(
|
||||
'usr_id' => $user->get_id(),
|
||||
'same_usr_id' => $user->get_id(),
|
||||
'element_id' => $element_id
|
||||
);
|
||||
|
||||
@@ -38,6 +40,12 @@ class BasketElementRepository extends EntityRepository
|
||||
|
||||
$element = $query->getOneOrNullResult();
|
||||
|
||||
/* @var $element \Entities\BasketElement */
|
||||
if (null === $element)
|
||||
{
|
||||
throw new \Exception_NotFound(_('Element is not found'));
|
||||
}
|
||||
|
||||
return $element;
|
||||
}
|
||||
|
||||
@@ -121,41 +129,4 @@ class BasketElementRepository extends EntityRepository
|
||||
return $query->getResult();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param type $element_id
|
||||
* @param \User_Adapter $user
|
||||
* @return \Entities\BasketELement
|
||||
*/
|
||||
public function findElement($element_id, \User_Adapter $user)
|
||||
{
|
||||
$dql = 'SELECT e, b, s, p
|
||||
FROM Entities\BasketElement e
|
||||
JOIN e.basket b
|
||||
LEFT JOIN b.validation s
|
||||
LEFT JOIN s.participants p
|
||||
WHERE e.id = :element_id';
|
||||
|
||||
$query = $this->_em->createQuery($dql);
|
||||
|
||||
$query->setParameters(array('element_id' => $element_id));
|
||||
$cacheId = "_validation_element" . $element_id . Entities\BasketElement::CACHE_SUFFIX;
|
||||
$query->useResultCache(true, 1800, $cacheId);
|
||||
|
||||
$element = $query->getOneOrNullResult();
|
||||
|
||||
/* @var $element \Entities\BasketElement */
|
||||
if (null === $element)
|
||||
{
|
||||
throw new \Exception_NotFound(_('Element is not found'));
|
||||
}
|
||||
|
||||
if ($element->getBasket()->getowner()->get_id() != $user->get_id())
|
||||
{
|
||||
throw new \Exception_Forbidden(_('You have not access to this basket element'));
|
||||
}
|
||||
|
||||
return $element;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user