Merge branch '3.6' of github.com:alchemy-fr/Phraseanet into 3.6

This commit is contained in:
Nicolas Le Goff
2012-02-17 19:14:16 +01:00
62 changed files with 924 additions and 700 deletions

View File

@@ -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;
}
}