BugReportController.php 2.21 KB
Newer Older
Julien Jorry committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
<?php

namespace App\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Shivas\VersioningBundle\Service\VersionManager;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;

class BugReportController extends AbstractController
{
    /**
     * @Route("/bugreport", name="bugreport")
     * @IsGranted("ROLE_USER")
     */
    public function bugreport(Request $request, VersionManager $manager)
    {
        $urltype = 'https://gitlab.com/Kohinos/kohinos/-/issues/new?issue[title]=%%title%%&issue[description]=%%description%%';
        $newline = '%0A';
        $referer = $request->headers->get('referer');
        $version = $manager->getVersion();
23
        $title = '[V' . $version . '] ';
Julien Jorry committed
24
        $description =
25 26 27 28
            '[URL] ' . $referer . $newline . $newline .
            '[Kohinos v ' . $version . ']' . $newline .
            '[USER] ' . $this->getUser()->getName() . ' [' . $this->getUser()->getId() . ']' . $newline .
            '[ROLES] ' . implode(array_map(function ($o) {
Julien Jorry committed
29
                return $o->getName();
30 31 32 33 34 35 36 37 38 39 40 41 42 43
            }, $this->getUser()->getGroups()->toArray())) . $newline . $newline .
            '* Résumé' . $newline .
            '(Résumé concis du bug)' . $newline . $newline .
            '* Étapes pour reproduire' . $newline .
            '(Comment reproduire le bug)' . $newline . $newline .
            '* Comportement courant' . $newline .
            '(ce qu\'il se passe et que vous trouver anormal)' . $newline . $newline .
            '* Comportement attendu' . $newline .
            '(ce qui devrait se passer selon vous ou qui se passait avant la régression)' . $newline . $newline .
            '* Environnement' . $newline .
            '( Version / environnement / instance, ...)  ' . $newline . $newline .
            '* Préciser le Compte / Rôle pour se connecter' . $newline .
            '(fournir les comptes si besoin)' . $newline . $newline .
            '* Logs et/ou captures d\'écran pertinent' . $newline
Julien Jorry committed
44 45
        ;

46
        $url = str_replace(['%%title%%', '%%description%%'], [$title, $description], $urltype);
Julien Jorry committed
47 48 49 50

        return $this->redirect($url);
    }
}