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)));
 }
Exemple #2
0
 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)));
 }
Exemple #4
0
 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);
 }
Exemple #6
0
 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'));
 }
Exemple #8
0
 /**
  * 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'));
 }