/** * {@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(); }
/** * 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; }
/** * 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); }
/** * {@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); }
/** * @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]); }