/** * {@inheritdoc} */ public function isEnabled(Mailbox $mailbox = null) { if ($mailbox === null || null === ($organization = $mailbox->getOrganization())) { $organization = $this->securityLink->getService()->getOrganization(); } $qb = $this->getChannelRepository()->createQueryBuilder('c'); return (bool) $qb->select('COUNT(c.id)')->join('c.entities', 'e')->andWhere('e.name = :name')->andWhere('c.status = :status')->andWhere('c.owner = :owner')->setParameter('name', static::LEAD_CLASS)->setParameter('status', Channel::STATUS_ACTIVE)->setParameter('owner', $organization)->getQuery()->getSingleScalarResult(); }
/** * Configures user field so it searches only within mailboxes' organization. * * @param FormInterface $form * @param Mailbox $data */ protected function configureUserField(FormInterface $form, Mailbox $data) { if (!$data->getOrganization()) { return; } FormUtils::replaceField($form, 'authorizedUsers', ['configs' => ['route_name' => 'oro_email_mailbox_users_search', 'route_parameters' => ['organizationId' => $data->getOrganization()->getId()], 'multiple' => true, 'width' => '400px', 'placeholder' => 'oro.user.form.choose_user', 'allowClear' => true, 'result_template_twig' => 'OroUserBundle:User:Autocomplete/result.html.twig', 'selection_template_twig' => 'OroUserBundle:User:Autocomplete/selection.html.twig']]); }