2 namespace TYPO3\CMS\Belog\Domain\Repository;
34 public function initializeObject()
36 $this->beUserList = \TYPO3\CMS\Backend\Utility\BackendUtility::getUserNames();
38 $defaultQuerySettings = $this->objectManager->get(\TYPO3\CMS\Extbase\Persistence\Generic\QuerySettingsInterface::class);
53 if (!empty($queryConstraints)) {
54 $query->matching($query->logicalAnd($queryConstraints));
56 $query->setOrderings(array(
'uid' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING));
57 $query->setLimit($constraint->getNumber());
58 return $query->execute();
68 protected function createQueryConstraints(\TYPO3\CMS\Extbase\Persistence\QueryInterface $query, \TYPO3\CMS\Belog\Domain\Model\Constraint $constraint)
70 $queryConstraints = array();
74 if ($constraint->getWorkspaceUid() != \TYPO3\CMS\Belog\Domain\Model\Workspace::UID_ANY_WORKSPACE) {
75 $queryConstraints[] = $query->equals(
'workspace', $constraint->getWorkspaceUid());
78 if ($constraint->getAction() > 0) {
79 $queryConstraints[] = $query->equals(
'type', $constraint->getAction());
80 }
elseif ($constraint->getAction() == -1) {
81 $queryConstraints[] = $query->in(
'error', array(-1, 1, 2, 3));
85 $queryConstraints[] = $query->greaterThanOrEqual(
'tstamp', $constraint->getStartTimestamp());
86 $queryConstraints[] = $query->lessThan(
'tstamp', $constraint->getEndTimestamp());
88 $this->addPageTreeConstraintsToQuery($constraint, $query, $queryConstraints);
89 return $queryConstraints;
101 protected function addPageTreeConstraintsToQuery(\TYPO3\CMS\Belog\Domain\Model\Constraint $constraint, \TYPO3\CMS\Extbase\Persistence\QueryInterface $query, array &$queryConstraints)
103 if (!$constraint->getIsInPageContext()) {
108 if ($constraint->getDepth() > 0) {
110 $pageTree = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Tree\View\PageTreeView::class);
111 $pageTree->init(
'AND ' .
$GLOBALS[
'BE_USER']->getPagePermsClause(1));
112 $pageTree->makeHTML = 0;
113 $pageTree->fieldArray = array(
'uid');
114 $pageTree->getTree($constraint->getPageId(), $constraint->getDepth());
115 $pageIds = $pageTree->ids;
117 $pageIds[] = $constraint->getPageId();
118 $queryConstraints[] = $query->in(
'eventPid', $pageIds);
129 protected function addUsersAndGroupsToQueryConstraints(\TYPO3\CMS\Belog\Domain\Model\Constraint $constraint, \TYPO3\CMS\Extbase\Persistence\QueryInterface $query, array &$queryConstraints)
131 $userOrGroup = $constraint->getUserOrGroup();
132 if ($userOrGroup ===
'') {
136 if (substr($userOrGroup, 0, 3) ===
'gr-') {
137 $groupId = (int)substr($userOrGroup, 3);
139 foreach ($this->beUserList as $userId => $userData) {
140 if (\TYPO3\CMS\Core\Utility\GeneralUtility::inList($userData[
'usergroup_cached_list'], $groupId)) {
141 $userIds[] = $userId;
144 if (!empty($userIds)) {
145 $queryConstraints[] = $query->in(
'userid', $userIds);
148 $queryConstraints[] = $query->in(
'userid', array(-1));
150 }
elseif (substr($userOrGroup, 0, 3) ===
'us-') {
151 $queryConstraints[] = $query->equals(
'userid', (
int)substr($userOrGroup, 3));
152 }
elseif ($userOrGroup ===
'-1') {
153 $queryConstraints[] = $query->equals(
'userid', (
int)
$GLOBALS[
'BE_USER']->user[
'uid']);