public function getPackageMaintainersQueryBuilder(Package $package, User $excludeUser = null) { $qb = $this->createQueryBuilder('u')->select('u')->innerJoin('u.packages', 'p', 'WITH', 'p.id = :packageId')->setParameter(':packageId', $package->getId())->orderBy('u.username', 'ASC'); if ($excludeUser) { $qb->andWhere('u.id <> :userId')->setParameter(':userId', $excludeUser->getId()); } return $qb; }
public function isVendorTaken($vendor, User $user) { $query = $this->getEntityManager()->createQuery("SELECT p.name, m.id user_id\n FROM Packagist\\WebBundle\\Entity\\Package p\n JOIN p.maintainers m\n WHERE p.name LIKE :vendor")->setParameters(array('vendor' => $vendor . '/%')); $rows = $query->getArrayResult(); if (!$rows) { return false; } foreach ($rows as $row) { if ($row['user_id'] === $user->getId()) { return false; } } return true; }
/** * @param Request $req * @param User $user * @return Pagerfanta */ protected function getUserPackages($req, $user) { $packages = $this->getDoctrine()->getRepository('PackagistWebBundle:Package')->getFilteredQueryBuilder(array('maintainer' => $user->getId()))->orderBy('p.name'); $paginator = new Pagerfanta(new DoctrineORMAdapter($packages, true)); $paginator->setMaxPerPage(15); $paginator->setCurrentPage($req->query->get('page', 1), false, true); return $paginator; }
/** * @Route("/users/{name}/favorites/{package}", name="user_remove_fav", defaults={"_format" = "json"}, requirements={"package"="[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+?"}) * @ParamConverter("user", options={"mapping": {"name": "username"}}) * @ParamConverter("package", options={"mapping": {"package": "name"}}) * @Method({"DELETE"}) */ public function deleteFavoriteAction(User $user, Package $package) { if ($user->getId() !== $this->getUser()->getId()) { throw new AccessDeniedException('You can only change your own favorites'); } $this->get('packagist.favorite_manager')->removeFavorite($user, $package); return new Response('{"status": "success"}', 204); }
public function getQueryBuilderByMaintainer(User $user) { $qb = $this->getBaseQueryBuilder()->select('p, v')->where('m.id = ?0')->setParameters(array($user->getId())); return $qb; }