PHRAS-3754 admin - user detail - Record ACL tab (#4148)

* record acl tab in admin

* fix email locked, limit record right to 200

* fix

* add filter

* update

* feed element, basket element

* feed list

* feed entries

* when not expand

* some improvement
This commit is contained in:
Aina Sitraka
2022-10-26 00:21:25 +03:00
committed by GitHub
parent 19b4f6d06b
commit 69ccdefb51
10 changed files with 742 additions and 141 deletions

View File

@@ -13,6 +13,7 @@ namespace Alchemy\Phrasea\Model\Repositories;
use Alchemy\Phrasea\Application;
use Alchemy\Phrasea\Model\Entities\FeedItem;
use Alchemy\Phrasea\Model\Entities\User;
use Doctrine\ORM\EntityRepository;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
@@ -103,4 +104,52 @@ class FeedItemRepository extends EntityRepository
return $items;
}
public function getItemsCount(User $user, $databoxId = null, $recordId = null)
{
$qb = $this->createQueryBuilder('fi');
$qb->select('count(fi)');
$qb->innerjoin('fi.entry', 'fe');
$qb->innerjoin('fe.publisher', 'fp');
$qb->where($qb->expr()->eq('fp.user', ':publisher'));
$qb->setParameter(':publisher', $user);
if ($databoxId != null) {
$qb->andWhere('fi.sbasId = :databoxId');
$qb->setParameter(':databoxId', $databoxId);
}
if ($recordId != null) {
$qb->andWhere('fi.recordId = :recordId');
$qb->setParameter(':recordId', $recordId);
}
return $qb->getQuery()->getSingleScalarResult();
}
public function getLastItems(User $user, $databoxId = null, $recordId = null, $nbItems = 200)
{
$qb = $this->createQueryBuilder('fi');
$qb->innerjoin('fi.entry', 'fe');
$qb->innerjoin('fe.publisher', 'fp');
$qb->where($qb->expr()->eq('fp.user', ':publisher'));
$qb->setParameter(':publisher', $user);
if ($databoxId != null) {
$qb->andWhere('fi.sbasId = :databoxId');
$qb->setParameter(':databoxId', $databoxId);
}
if ($recordId != null) {
$qb->andWhere('fi.recordId = :recordId');
$qb->setParameter(':recordId', $recordId);
}
$qb->orderBy('fi.id', 'DESC');
$qb->setMaxResults($nbItems);
return $qb->getQuery()->getResult();
}
}