/**
  * @param User $sender
  * @param array $usersByRestrictions
  * @return array
  */
 private function prepareRecipients(User $sender, array $usersByRestrictions)
 {
     if (empty($usersByRestrictions)) {
         return [];
     }
     unset($usersByRestrictions['suspendedUsers'][$sender->getId()], $usersByRestrictions['activeUsers'][$sender->getId()]);
     if (!$this->authorizator->isAllowed($sender, 'message', 'send_to_restricted_recipients')) {
         $recipients = array_diff_key($usersByRestrictions['activeUsers'], $usersByRestrictions['suspendedUsers'], $usersByRestrictions['usersBlockedByMe'], $usersByRestrictions['usersBlockingMe']);
     } else {
         $recipients = $usersByRestrictions['activeUsers'] + $usersByRestrictions['usersBlockedByMe'] + $usersByRestrictions['usersBlockingMe'];
     }
     return Arrays::associate($recipients, 'id=username');
 }
 public function withoutUser(User $user)
 {
     $this->filter[] = function (Kdyby\Doctrine\QueryBuilder $qb) use($user) {
         $qb->andWhere('u.id <> :id')->setParameter('id', $user->getId());
     };
     return $this;
 }
 public function render()
 {
     $template = $this->getTemplate();
     $template->setFile(__DIR__ . '/template.latte');
     $paginator = $this['paginator']->getPaginator();
     if (empty($this->users)) {
         $usersResultSet = $this->usersFacade->fetchUsers($this->usersQuery);
         $usersResultSet->applyPaginator($paginator, 15);
         $this->users = Arrays::associate($usersResultSet->toArray(AbstractQuery::HYDRATE_ARRAY), 'id');
         unset($this->users[$this->userEntity->getId()]);
     }
     $template->users = $this->users;
     if (empty($this->alreadyBlockedUsers)) {
         $alreadyBlockedUsers = Arrays::associate($this->usersFacade->fetchUsers((new UsersOverviewQuery())->onlyWithFields(['id'])->findUsersBlockedBy($this->userEntity))->toArray(AbstractQuery::HYDRATE_ARRAY), 'id');
         $this->alreadyBlockedUsers = $alreadyBlockedUsers;
     }
     if ($this->userEntity->isInRole('admin') and empty($this->usersWithClosedAccount)) {
         $uwca = Arrays::associate($this->usersFacade->fetchUsers((new UsersOverviewQuery())->onlyWithFields(['id'])->findUsersWithClosedAccount())->toArray(AbstractQuery::HYDRATE_ARRAY), 'id');
         $this->usersWithClosedAccount = $uwca;
     }
     $template->areRelationshipsRestrictionsVisible = $this->areRelationshipsRestrictionsVisible;
     $template->isHintBoxVisible = $this->isHintBoxVisible;
     $template->render();
 }
예제 #4
0
 /**
  * Returns Resource's owner ID
  *
  * @return int
  */
 public function getOwnerId()
 {
     return $this->user->getId();
 }