Commit 898cedeb authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Service ok début de mise en place des interfaces et actions

parent 0296185f
Loading
Loading
Loading
Loading
Loading

config/merged/index.config.php

deleted100644 → 0
+0 −0

Empty file deleted.

+99 −11
Changes for config/merged/mail.config.php: 99 added lines, 11 removed lines.
Original line number Diff line number Diff line
<?php

use UnicaenMail\Controller\MailController;
use UnicaenMail\Controller\MailControllerFactory;
use UnicaenMail\Provider\Privilege\MailPrivileges;
use UnicaenMail\Service\Mail\MailService;
use UnicaenMail\Service\Mail\MailServiceFactory;
use UnicaenMail\View\Helper\MailViewHelper;
use UnicaenPrivilege\Guard\PrivilegeController;
use Zend\Router\Http\Literal;
use Zend\Router\Http\Segment;

return array(
    'bjyauthorize'    => [
        'guards' => [
            PrivilegeController::class => [
//                [
//                    'controller' => MailTypeController::class,
//                    'action'     => [
//                        'modifier-mail',
//                    ],
//                    'privileges' => [
//                        MailingPrivileges::MAILING_EFFACER,
//                    ],
//                ],
                [
                    'controller' => MailController::class,
                    'action'     => [
                        'index',
                    ],
                    'privileges' => [
                        MailPrivileges::MAIL_INDEX,
                    ],
                ],
                [
                    'controller' => MailController::class,
                    'action'     => [
                        'afficher',
                    ],
                    'privileges' => [
                        MailPrivileges::MAIL_AFFICHER,
                    ],
                ],
                [
                    'controller' => MailController::class,
                    'action'     => [
                        'test',
                    ],
                    'privileges' => [
                        MailPrivileges::MAIL_TEST,
                    ],
                ],
                [
                    'controller' => MailController::class,
                    'action'     => [
                        'reenvoi',
                    ],
                    'privileges' => [
                        MailPrivileges::MAIL_REENVOI,
                    ],
                ],
                [
                    'controller' => MailController::class,
                    'action'     => [
                        'supprimer',
                    ],
                    'privileges' => [
                        MailPrivileges::MAIL_SUPPRIMER,
                    ],
                ],
            ],
        ],
    ],

    'navigation' => [
        'default' => [
            'home' => [
                'pages' => [
                    'administration' => [
                        'pages' => [
                            'mail' => [
                                'label' => 'Mail (NEUE)',
                                'route' => 'mail',
                                'resource' => PrivilegeController::getResourceId(MailController::class, 'index'),
                                'order'    => 9003,
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],

    'router' => [
        'routes' => [
            'mail' => [
                'type' => Literal::class,
                'options' => [
                    'route' => '/mail',
                    'defaults' => [
                        'controller' => MailController::class,
                        'action' => 'index',
                    ],
                ],
                'may_terminate' => true,
                'child_routes' => [
                    'afficher' => [
                        'type' => Segment::class,
                        'options' => [
                            'route' => '/afficher/:mail',
                            'defaults' => [
                                'controller' => MailController::class,
                                'action' => 'afficher',
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],

@@ -39,9 +123,13 @@ return array(

    ],
    'controllers' => [
        'factories' => [],
        'factories' => [
            MailController::class => MailControllerFactory::class,
        ],
    ],
    'view_helpers' => [
        'invokables' => [],
        'invokables' => [
            'mail' => MailViewHelper::class
        ],
    ],
);
+0 −16
Changes for src/UnicaenMail/Controller/IndexController.php: 0 added lines, 16 removed lines.
Original line number Diff line number Diff line
<?php

namespace UnicaenMail\Controller;

use Zend\Mvc\Controller\AbstractActionController;


class IndexController extends AbstractActionController
{

    public function indexAction()
    {
        return new ViewModel([]);
    }

}
 No newline at end of file
+65 −0
Changes for src/UnicaenMail/Controller/MailController.php: 65 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace UnicaenMail\Controller;

use UnicaenMail\Service\Mail\MailServiceAwareTrait;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class MailController extends AbstractActionController {
    use MailServiceAwareTrait;

    public function indexAction()
    {
        $mails = $this->getMailService()->getMails();

        return new ViewModel([
            'mails' => $mails,
        ]);
    }

    public function afficherAction()
    {
        $mail = $this->getMailService()->getRequestedMail($this);

        return new ViewModel([
            'title' => "Affichage du mail #". $mail->getId(),
            'mail' => $mail,
        ]);
    }

    public function testAction()
    {
        return $this->redirect()->toRoute('mail/index', [], [], true);
    }

    public function reenvoiAction()
    {
        $mail = $this->getMailService()->getRequestedMail($this);
        $this->getMailService()->reenvoi($mail);
        return $this->redirect()->toRoute('mail/index', [], [], true);
    }

    public function supprimerAction()
    {
        $mail = $this->getMailService()->getRequestedMail($this);

        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            if ($data["reponse"] === "oui") $this->getMailService()->delete($mail);
            exit();
        }

        $vm = new ViewModel();
        if ($mail !== null) {
            $vm->setTemplate('unicaen-mail/default/confirmation');
            $vm->setVariables([
                'title' => "Suppression du niveau " . $mail->getId(),
                'text' => "La suppression est définitive êtes-vous sûr&middot;e de vouloir continuer ?",
                'action' => $this->url()->fromRoute('mail/supprimer', ["mail" => $mail->getId()], [], true),
            ]);
        }
        return $vm;
    }
}
 No newline at end of file
+25 −0
Changes for src/UnicaenMail/Controller/MailControllerFactory.php: 25 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace UnicaenMail\Controller;

use Interop\Container\ContainerInterface;
use UnicaenMail\Service\Mail\MailService;

class MailControllerFactory {

    /**
     * @param ContainerInterface $container
     * @return MailController
     */
    public function __invoke(ContainerInterface $container) : MailController
    {
        /**
         * @var MailService $mailService
         */
        $mailService = $container->get(MailService::class);

        $controller = new MailController();
        $controller->setMailService($mailService);
        return $controller;
    }
}
 No newline at end of file
Loading