/**
  * {@inheritdoc}
  */
 public function findDatagridViewBySearch(UserInterface $user, $alias, $term = '', array $options = [])
 {
     $options += ['limit' => 20, 'page' => 1];
     $offset = (int) $options['limit'] * ((int) $options['page'] - 1);
     $qb = $this->createQueryBuilder('v')->where('v.owner = :user_id OR v.type = :type')->setParameter('user_id', $user->getId())->setParameter('type', DatagridView::TYPE_PUBLIC)->andWhere('v.datagridAlias = :alias')->setParameter('alias', $alias)->andWhere('v.label LIKE :term')->setParameter('term', sprintf('%%%s%%', $term))->setMaxResults((int) $options['limit'])->setFirstResult($offset);
     return $qb->getQuery()->execute();
 }
예제 #2
0
 /**
  * Updates a user password if a plain password is set
  *
  * @param UserInterface $user
  */
 public function updatePassword(UserInterface $user)
 {
     if (0 !== strlen($password = $user->getPlainPassword())) {
         $encoder = $this->getEncoder($user);
         $user->setPassword($encoder->encodePassword($password, $user->getSalt()));
         $user->eraseCredentials();
     }
 }
 /**
  * Returns true if passed user is currently authenticated
  *
  * @param  UserInterface $user
  * @return bool
  */
 protected function isCurrentUser(UserInterface $user)
 {
     $token = $this->tokenStorage->getToken();
     $currentUser = $token ? $token->getUser() : null;
     if ($user->getId() && is_object($currentUser)) {
         return $currentUser->getId() == $user->getId();
     }
     return false;
 }
예제 #4
0
 /**
  * Add the default group to the user.
  *
  * @param UserInterface $user
  *
  * @throws \RuntimeException
  */
 protected function addDefaultGroup(UserInterface $user)
 {
     if (!$user->hasGroup(User::GROUP_DEFAULT)) {
         $group = $this->manager->getStorageManager()->getRepository('OroUserBundle:Group')->getDefaultUserGroup();
         if (!$group) {
             throw new \RuntimeException('Default user group not found');
         }
         $user->addGroup($group);
     }
 }
 /**
  * Validate default tree
  *
  * @param UserInterface $user
  * @param Constraint    $constraint
  */
 protected function validateDefaultTree($user, Constraint $constraint)
 {
     if (is_callable(array($user, 'getDefaultTree'))) {
         $tree = $user->getDefaultTree();
         if (!$tree) {
             $this->context->buildViolation($constraint->missingTreeMsg)->addViolation();
         } elseif (!$tree->isRoot()) {
             $this->context->buildViolation($constraint->invalidTreeMsg)->addViolation();
         }
     }
 }
 function it_normalizes_a_datagrid_view(DatagridView $view, UserInterface $user)
 {
     $user->getId()->willReturn(666);
     $view->getId()->willReturn(42);
     $view->getOwner()->willReturn($user);
     $view->getLabel()->willReturn('Cameras');
     $view->getType()->willReturn('public');
     $view->getDatagridAlias()->willReturn('product-grid');
     $view->getColumns()->willReturn(['sku', 'name', 'brand']);
     $view->getFilters()->willReturn('i=1&p=10&s%5Bupdated%5D=1&f%5Bfamily%5D%5Bvalue%5D%5B%5D=mugs');
     $view->getOrder()->willReturn('sku,name,brand');
     $this->normalize($view, 'json')->shouldReturn(['id' => 42, 'owner_id' => 666, 'label' => 'Cameras', 'type' => 'public', 'datagrid_alias' => 'product-grid', 'columns' => ['sku', 'name', 'brand'], 'filters' => 'i=1&p=10&s%5Bupdated%5D=1&f%5Bfamily%5D%5Bvalue%5D%5B%5D=mugs']);
 }
 function it_applies_when_user_preference_is_filled_and_skip_disallowed($context, UserInterface $user, DatagridInterface $datagrid, Acceptor $acceptor, DatagridConfiguration $config, BuildAfter $event)
 {
     $config->offsetGet('filters')->willReturn(['columns' => ['foo' => [], 'baz' => [], 'scope' => [], 'locale' => []]]);
     $config->offsetSetByPath('[filters][columns][foo][enabled]', true)->shouldBeCalled();
     $config->offsetSetByPath('[filters][columns][baz][enabled]', false)->shouldBeCalled();
     $config->offsetSetByPath('[filters][columns][bar][enabled]', Argument::any())->shouldNotBeCalled();
     $config->offsetSetByPath('[filters][columns][scope][enabled]', Argument::any())->shouldNotBeCalled();
     $config->offsetSetByPath('[filters][columns][locale][enabled]', Argument::any())->shouldNotBeCalled();
     $user->getProductGridFilters()->willReturn(['foo', 'bar']);
     $context->getUser()->willReturn($user);
     $acceptor->getConfig()->willReturn($config);
     $datagrid->getAcceptor()->willReturn($acceptor);
     $event->getDatagrid()->willReturn($datagrid);
     $this->onBuildAfter($event);
 }
예제 #8
0
 /**
  * {@inheritDoc}
  */
 protected function onSuccess(UserInterface $user)
 {
     $user->setPlainPassword($this->form->getData()->plainPassword)->setConfirmationToken(null)->setPasswordRequestedAt(null)->setEnabled(true);
     $this->manager->updateUser($user);
 }
 /**
  * Validate permissions on pinbar
  *
  * @param  UserInterface $user
  * @return bool
  */
 protected function validatePermissions(UserInterface $user)
 {
     return $user->getId() == ($this->getUser() ? $this->getUser()->getId() : 0);
 }
예제 #10
0
 /**
  * @param UserInterface $user
  * @param string        $field
  * @param mixed         $data
  *
  * @throws \InvalidArgumentException
  */
 protected function setData(UserInterface $user, $field, $data)
 {
     switch ($field) {
         case 'username':
             $user->setUsername($data);
             break;
         case 'name_prefix':
             $user->setNamePrefix($data);
             break;
         case 'first_name':
             $user->setFirstName($data);
             break;
         case 'middle_name':
             $user->setMiddleName($data);
             break;
         case 'last_name':
             $user->setLastName($data);
             break;
         case 'name_suffix':
             $user->setNameSuffix($data);
             break;
         case 'email':
             $user->setEmail($data);
             break;
         case 'password':
             $user->setPlainPassword($data);
             $this->userManager->updatePassword($user);
             break;
         case 'birthday':
             $user->setBirthday(new \DateTime($data, \DateTime::ISO8601));
             break;
         case 'email_notifications':
             $user->setEmailNotifications($data);
             break;
         case 'catalog_locale':
             $user->setCatalogLocale($this->findLocale($data));
             break;
         case 'user_locale':
             $user->setUiLocale($this->findLocale($data));
             break;
         case 'catalog_scope':
             $user->setCatalogScope($this->findChannel($data));
             break;
         case 'default_tree':
             $user->setDefaultTree($this->findCategory($data));
             break;
         case 'roles':
             foreach ($data as $code) {
                 $role = $this->findRole($code);
                 $user->addRole($role);
             }
             break;
         case 'groups':
             foreach ($data as $code) {
                 $role = $this->findGroup($code);
                 $user->addGroup($role);
             }
             break;
         case 'api_key':
             if (null === ($api = $user->getApi())) {
                 $api = new UserApi();
             }
             $api->setApiKey($data)->setUser($user);
             $user->setApi($api);
             break;
     }
 }
 /**
  * Get the truncated email displayed when requesting the resetting.
  * The default implementation only keeps the part following @ in the address.
  *
  * @param UserInterface $user
  *
  * @return string
  */
 protected function getObfuscatedEmail(UserInterface $user)
 {
     $email = $user->getEmail();
     if (false !== ($pos = strpos($email, '@'))) {
         $email = '...' . substr($email, $pos);
     }
     return $email;
 }
 /**
  * {@inheritdoc}
  */
 public function findDatagridViewByUserAndAlias(UserInterface $user, $alias)
 {
     return $this->createQueryBuilder('v')->where('v.owner = :user_id')->andWhere('v.datagridAlias = :alias')->setParameters(['user_id' => $user->getId(), 'alias' => $alias]);
 }