supprimer des bookmark les items qui ne sont plus lié au profil (fixes #31269)
This commit is contained in:
parent
55e34b7526
commit
3c47ed1d40
|
@ -34,6 +34,7 @@ class ItemRepository extends EntityRepository
|
|||
$items=new ArrayCollection();
|
||||
|
||||
// Récupération des items par rôles
|
||||
$itemsroles=[];
|
||||
foreach($roles as $role) {
|
||||
$qb = $this->getEntityManager()->createQueryBuilder();
|
||||
$qb->select('item')
|
||||
|
@ -57,6 +58,7 @@ class ItemRepository extends EntityRepository
|
|||
}
|
||||
|
||||
// Récupération des items par group
|
||||
$itemsgroups=[];
|
||||
foreach($groups as $group) {
|
||||
$qb = $this->getEntityManager()->createQueryBuilder();
|
||||
$qb->select('item')
|
||||
|
@ -75,7 +77,6 @@ class ItemRepository extends EntityRepository
|
|||
}
|
||||
|
||||
$itemsgroups=$qb->getQuery()->getResult();
|
||||
|
||||
foreach($itemsgroups as $itemgroup) {
|
||||
if(!$bookmarksitems->contains($itemgroup) && !$items->contains($itemgroup)) $items->add($itemgroup);
|
||||
}
|
||||
|
@ -83,6 +84,7 @@ class ItemRepository extends EntityRepository
|
|||
|
||||
|
||||
// Récupération des items par niveau01
|
||||
$itemsniveau01s=[];
|
||||
if($niveau01) {
|
||||
$qb = $this->getEntityManager()->createQueryBuilder();
|
||||
$qb->select('item')
|
||||
|
@ -107,6 +109,7 @@ class ItemRepository extends EntityRepository
|
|||
}
|
||||
|
||||
// Récupération des items par ssoitem
|
||||
$itemsssoitems=[];
|
||||
foreach($ssoitems as $ssoitem) {
|
||||
$qb = $this->getEntityManager()->createQueryBuilder();
|
||||
$qb->select('item')
|
||||
|
@ -125,12 +128,22 @@ class ItemRepository extends EntityRepository
|
|||
}
|
||||
|
||||
$itemsssoitems=$qb->getQuery()->getResult();
|
||||
|
||||
foreach($itemsssoitems as $itemssoitem) {
|
||||
if(!$bookmarksitems->contains($itemssoitem) && !$items->contains($itemssoitem)) $items->add($itemssoitem);
|
||||
}
|
||||
}
|
||||
|
||||
// Pour chaque bookmark lié à un item : on vérifie qu'il est tjr la permission de voir cet item sinon on l'enlève de ses fav
|
||||
foreach($bookmarks as $key => $bookmark) {
|
||||
$item=$bookmark->getItem();
|
||||
if($item) {
|
||||
if(!in_array($item,$itemsroles) && !in_array($item,$itemsgroups) && !in_array($item,$itemsniveau01s) && !in_array($item,$itemsssoitems) ) {
|
||||
unset($bookmarks[$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Trie des items
|
||||
$itemsordered = $items->getIterator();
|
||||
$itemsordered->uasort(function ($first, $second) {
|
||||
|
|
Loading…
Reference in New Issue