public function indexAction(Application $app, Request $request) { /** @var \Doctrine\ORM\EntityManager $entityManager */ $entityManager = $app->get('doctrine.orm.entity_manager'); $packages = $entityManager->getRepository('Terramar\\Packages\\Entity\\Package')->createQueryBuilder('p')->select('COUNT(p)')->where('p.enabled = true')->getQuery()->getSingleScalarResult(); $remotes = $entityManager->getRepository('Terramar\\Packages\\Entity\\Remote')->createQueryBuilder('c')->select('COUNT(c)')->where('c.enabled = true')->getQuery()->getSingleScalarResult(); return new Response($app->get('templating')->render('Manage/index.html.twig', array('packages' => $packages, 'remotes' => $remotes))); }
public function updateAction(Application $app, Request $request, $id) { /** @var \Doctrine\ORM\EntityManager $entityManager */ $entityManager = $app->get('doctrine.orm.entity_manager'); $config = $entityManager->getRepository('Terramar\\Packages\\Plugin\\Satis\\PackageConfiguration')->findOneBy(array('package' => $id)); $config->setEnabled($request->get('satis_enabled') ? true : false); $entityManager->persist($config); return new Response(); }
public function loginAction(Application $app, Request $request) { $error = false; $session = $request->getSession(); if ($session->get(AuthenticationFailureSubscriber::AUTHENTICATION_ERROR)) { $error = true; $session->remove(AuthenticationFailureSubscriber::AUTHENTICATION_ERROR); } return new Response($app->get('templating')->render('Default/login.html.twig', array('error' => $error))); }
public function updateAction(Application $app, Request $request, $id) { /** @var \Doctrine\ORM\EntityManager $entityManager */ $entityManager = $app->get('doctrine.orm.entity_manager'); $config = $entityManager->getRepository('Terramar\\Packages\\Plugin\\GitLab\\RemoteConfiguration')->findOneBy(array('remote' => $id)); if (!$config) { return new Response(); } $config->setToken($request->get('gitlab_token')); $config->setUrl($request->get('gitlab_url')); $config->setEnabled($config->getRemote()->isEnabled()); $entityManager->persist($config); return new Response(); }
public function receiveAction(Application $app, Request $request, $id) { /** @var \Doctrine\ORM\EntityManager $entityManager */ $entityManager = $app->get('doctrine.orm.entity_manager'); $package = $entityManager->getRepository('Terramar\\Packages\\Entity\\Package')->findOneBy(array('id' => $id, 'enabled' => true)); if (!$package || !$package->isEnabled() || !$package->getRemote()->isEnabled()) { return new Response('Project not found', 404); } $receivedData = json_decode($request->getContent()); $event = new PackageUpdateEvent($package, $receivedData); /** @var \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher */ $dispatcher = $app->get('event_dispatcher'); $dispatcher->dispatch(Events::PACKAGE_UPDATE, $event); // return new Response('Accepted', 202); return new Response('Ok', 200); }
public function updateAction(Application $app, Request $request, $id) { /** @var \Doctrine\ORM\EntityManager $entityManager */ $entityManager = $app->get('doctrine.orm.entity_manager'); $config = $entityManager->getRepository('Terramar\\Packages\\Plugin\\Sami\\PackageConfiguration')->findOneBy(array('package' => $id)); $config->setEnabled($request->get('sami_enabled') ? true : false); $config->setTitle($request->get('sami_title')); $config->setTheme($request->get('sami_theme')); $config->setTemplatesDir($request->get('sami_templates_dir')); $config->setRemoteRepoPath($request->get('sami_remote_repo_path')); $config->setTags($request->get('sami_tags')); $config->setRefs($request->get('sami_refs')); $config->setDocsPath($request->get('sami_docs_path')); $entityManager->persist($config); return new Response(); }
public function toggleAction(Application $app, $id) { /** @var \Doctrine\ORM\EntityManager $entityManager */ $entityManager = $app->get('doctrine.orm.entity_manager'); $package = $entityManager->getRepository('Terramar\\Packages\\Entity\\Package')->find($id); if (!$package) { throw new NotFoundHttpException('Unable to locate Package'); } $enabledAfter = !$package->isEnabled(); $package->setEnabled($enabledAfter); $eventName = $enabledAfter ? Events::PACKAGE_ENABLE : Events::PACKAGE_DISABLE; $event = new PackageEvent($package); /** @var \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher */ $dispatcher = $app->get('event_dispatcher'); $dispatcher->dispatch($eventName, $event); $entityManager->persist($package); $entityManager->flush(); return new RedirectResponse($app->get('router.url_generator')->generate('manage_packages')); }
/** * Register default extensions. */ protected function registerDefaultExtensions() { parent::registerDefaultExtensions(); $this->registerDefaultPlugins(); $config = Yaml::parse(file_get_contents($this->getRootDir() . '/config.yml')); $security = isset($config['security']) ? $config['security'] : array(); $doctrine = isset($config['doctrine']) ? $config['doctrine'] : array(); $resque = isset($config['resque']) ? $config['resque'] : null; $this->appendExtension(new PackagesExtension($this->plugins, array('output_dir' => $this->getRootDir() . '/web', 'resque' => $resque))); $this->appendExtension(new DoctrineOrmExtension($doctrine)); $this->appendExtension(new SessionExtension()); $this->appendExtension(new TemplatingExtension()); $this->appendExtension(new TwigExtension()); $this->appendExtension(new SecurityExtension(array('authenticator' => array('type' => 'username', 'username' => isset($security['username']) ? $security['username'] : null, 'password' => isset($security['password']) ? password_hash($security['password'], PASSWORD_DEFAULT) : null), 'firewall' => '^/manage', 'success_path' => '/manage'))); }
public function syncAction(Application $app, $id) { /** @var \Doctrine\ORM\EntityManager $entityManager */ $entityManager = $app->get('doctrine.orm.entity_manager'); $remote = $entityManager->getRepository('Terramar\\Packages\\Entity\\Remote')->find($id); if (!$remote) { throw new NotFoundHttpException('Unable to locate Remote'); } /** @var \Terramar\Packages\Helper\SyncHelper $helper */ $helper = $app->get('packages.helper.sync'); $packages = $helper->synchronizePackages($remote); foreach ($packages as $package) { $entityManager->persist($package); } $entityManager->flush(); return new RedirectResponse($app->get('router.url_generator')->generate('manage_remotes')); }