Commit 5ce0d566 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Privilège du module de mail

parent 90a0713b
Loading
Loading
Loading
Loading
+94 −9
Changes for module/Mailing/config/module.config.php: 94 added lines, 9 removed lines.
Original line number Diff line number Diff line
<?php

use Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain;
use Doctrine\DBAL\Driver\OCI8\Driver as OCI8;
use Doctrine\ORM\Mapping\Driver\XmlDriver;
use Mailing\Controller\Mailing\MailingController;
use Mailing\Controller\Mailing\MailingControllerFactory;
use Mailing\Provider\Privilege\MailingPrivileges;
use Mailing\Service\MailingService;
use Mailing\Service\Mailing\MailingService;
use Mailing\Service\Mailing\MailingServiceFactory;
use Zend\Mvc\Router\Http\Literal;
use Zend\Mvc\Router\Http\Segment;

return array(
    'bjyauthorize'    => [
@@ -18,11 +19,51 @@ return array(
                    'action'     => [
                        'index',
                    ],
                    'privileges' => [
                        MailingPrivileges::HISTORIQUE,

                    ],
                ],
                [
                    'controller' => MailingController::class,
                    'action'     => [
                        'afficher',
                    ],
                    'privileges' => [
                        MailingPrivileges::AFFICHER,

                    ],
                ],
                [
                    'controller' => MailingController::class,
                    'action'     => [
                        'mail-test',
                    ],
                    'privileges' => [
                        MailingPrivileges::ENVOI_TEST,

                    ],
                ],
                [
                    'controller' => MailingController::class,
                    'action'     => [
                        're-envoi',
                    ],
                    'privileges' => [
                        MailingPrivileges::RE_ENVOI,

                    ],
                ],
                [
                    'controller' => MailingController::class,
                    'action'     => [
                        'effacer',
                    ],
                    'privileges' => [
                        MailingPrivileges::EFFACER,

                    ],
                ],
            ],
        ],
    ],
@@ -31,20 +72,20 @@ return array(
            'orm_default' => [
                'class' => MappingDriverChain::class,
                'drivers' => [
                    'Indicateur\Model' => 'orm_default_xml_driver',
                    'Mailing\Model\Db' => 'orm_default_xml_driver',
                ],
            ],
            'orm_default_xml_driver' => [
                'class' => XmlDriver::class,
                'cache' => 'array',
                'cache' => 'apc',
                'paths' => [
                    __DIR__ . '/../src/Indicateur/Model/Db/Mapping',
                    __DIR__ . '/../src/Mailing/Model/Db/Mapping',
                ],
            ],
        ],
        'connection'    => [
            'orm_default' => [
                'driver_class' => OCI8::class,
        'cache' => [
            'apc' => [
                'namespace' => 'PREECOG__' . __NAMESPACE__,
            ],
        ],
    ],
@@ -77,6 +118,50 @@ return array(
                    ],
                ],
                'child_routes'  => [
                    'mail-test' => [
                        'type' => Literal::class,
                        'may_terminate' => true,
                        'options' => [
                            'route'    => '/mail-test',
                            'defaults' => [
                                'controller' => MailingController::class,
                                'action'     => 'mail-test',
                            ],
                        ],
                    ],
                    'afficher' => [
                        'type' => Segment::class,
                        'may_terminate' => true,
                        'options' => [
                            'route'    => '/afficher/:id',
                            'defaults' => [
                                'controller' => MailingController::class,
                                'action'     => 'afficher',
                            ],
                        ],
                    ],
                    'effacer' => [
                        'type' => Segment::class,
                        'may_terminate' => true,
                        'options' => [
                            'route'    => '/effacer/:id',
                            'defaults' => [
                                'controller' => MailingController::class,
                                'action'     => 'effacer',
                            ],
                        ],
                    ],
                    're-envoi' => [
                        'type' => Segment::class,
                        'may_terminate' => true,
                        'options' => [
                            'route'    => '/re-envoi/:id',
                            'defaults' => [
                                'controller' => MailingController::class,
                                'action'     => 're-envoi',
                            ],
                        ],
                    ],
                ],
            ],
        ],
@@ -94,7 +179,7 @@ return array(
    ],
    'service_manager' => [
        'factories' => [
            MailingService::class => \Application\Service\MailingServiceFactory::class,
            MailingService::class => MailingServiceFactory::class,
        ],

    ],
+49 −3
Changes for module/Mailing/src/Mailing/Controller/Mailing/MailingController.php: 49 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -2,15 +2,61 @@

namespace Mailing\Controller\Mailing;


use Application\Service\User\UserServiceAwareTrait;
use Mailing\Model\Db\Mail;
use Mailing\Service\Mailing\MailingServiceAwareTrait;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class MailingController extends AbstractActionController {
    use MailingServiceAwareTrait;
    use UserServiceAwareTrait;

    public function indexAction()
    {
        return new ViewModel(
        );
        /** @var Mail[] $mails */
        $mails = $this->getMailingService()->getMails();

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

    public function mailTestAction()
    {
        $mail = $this->getUserService()->getConnectedUser()->getEmail();
        $this->getMailingService()->sendTestMail($mail);
        $this->redirect()->toRoute('mailing');
    }

    public function afficherAction()
    {
        $mailId = $this->params()->fromRoute('id');
        $mail = $this->getMailingService()->getMail($mailId);

        return new ViewModel([
            'title' => 'Affichage du mail',
            'mail' => $mail,
        ]);
    }

    public function effacerAction()
    {
        $mailId = $this->params()->fromRoute('id');
        $mail = $this->getMailingService()->getMail($mailId);

        $this->getMailingService()->delete($mail);

        $this->redirect()->toRoute('mailing');
    }

    public function reEnvoiAction()
    {
        $mailId = $this->params()->fromRoute('id');
        $mail = $this->getMailingService()->getMail($mailId);

        $this->getMailingService()->reEnvoi($mail);

        $this->redirect()->toRoute('mailing');
    }
}
 No newline at end of file
+11 −0
Changes for module/Mailing/src/Mailing/Controller/Mailing/MailingControllerFactory.php: 11 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -2,14 +2,25 @@

namespace Mailing\Controller\Mailing;

use Application\Service\User\UserService;
use Mailing\Service\Mailing\MailingService;
use Zend\Mvc\Controller\ControllerManager;

class MailingControllerFactory {

    public function __invoke(ControllerManager $controllerManager)
    {
        /**
         * @var MailingService $mailingService
         * @var UserService $userService
         */
        $mailingService = $controllerManager->getServiceLocator()->get(MailingService::class);
        $userService = $controllerManager->getServiceLocator()->get(UserService::class);

        /** @var  MailingController $controller */
        $controller = new MailingController();
        $controller->setMailingService($mailingService);
        $controller->setUserService($userService);
        return $controller;
    }
}
 No newline at end of file
+7 −7
Changes for module/Mailing/src/Mailing/Model/Db/Mail.php: 7 added lines, 7 removed lines.
Original line number Diff line number Diff line
<?php

namespace Mailing\Entity\Db;
namespace Mailing\Model\Db;

use DateTime;

@@ -16,7 +16,7 @@ class Mail {
    /** @var DateTime */
    private $dateEnvoi;
    /** @var int */
    private $status;
    private $statusEnvoi;
    /** @var string */
    private $destinataires;
    /** @var boolean */
@@ -55,18 +55,18 @@ class Mail {
    /**
     * @return int
     */
    public function getStatus()
    public function getStatusEnvoi()
    {
        return $this->status;
        return $this->statusEnvoi;
    }

    /**
     * @param int $status
     * @param int $statusEnvoi
     * @return Mail
     */
    public function setStatus($status)
    public function setStatusEnvoi($statusEnvoi)
    {
        $this->status = $status;
        $this->statusEnvoi = $statusEnvoi;
        return $this;
    }

+1 −1
Changes for module/Mailing/src/Mailing/Model/Db/Mapping/Mailing.Model.Db.Mail.dcm.xml: 1 added line, 1 removed line.
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
    <entity name="Mailing\Entity\Db\Mail" table="mail">
    <entity name="Mailing\Model\Db\Mail" table="mail">

        <id name="id" type="integer" column="id">
            <generator strategy="IDENTITY"/>
Loading