Commit 9a734733 authored by Johnny Leveneur's avatar Johnny Leveneur
Browse files

Merge branch 'feature/evenementiel_inscription_groupe' into develop

parents 8ead183c 2490ea00
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -201,6 +201,9 @@ CREATE TABLE evenementiel_inscription
    evenement_id            INTEGER REFERENCES evenementiel_evenement (id) ON DELETE CASCADE,
    participant_id          INTEGER REFERENCES evenementiel_participant (id) ON DELETE CASCADE,
    statut                  VARCHAR(50) DEFAULT 'inscrit', -- inscrit, annulé, en attente
    type_inscription        VARCHAR(32) NOT NULL DEFAULT 'INDIVIDUELLE'
        CONSTRAINT evenementiel_inscription_type_check
            CHECK (type_inscription IN ('INDIVIDUELLE', 'GROUPE')),
    nombre_places_demandees integer default 1,
    nombre_places_pointees  integer default 0,
    liste                   varchar(64),
@@ -222,6 +225,16 @@ CREATE TABLE evenementiel_inscription
create unique index evenementiel_inscription_id_uindex
    on evenementiel_inscription (id);

-- ajout du champ type inscription sur une table existante
ALTER TABLE public.evenementiel_inscription
    ADD COLUMN type_inscription VARCHAR(32)
        NOT NULL DEFAULT 'INDIVIDUELLE';

ALTER TABLE public.evenementiel_inscription
    ADD CONSTRAINT evenementiel_inscription_type_check
        CHECK (type_inscription IN ('INDIVIDUELLE', 'GROUPE'));


--
--    1 ligne = 1 place pour 1 personne
drop table evenementiel_inscription_place ;
+0 −2
Original line number Diff line number Diff line
version: '2'

services:
  inscription_suac:
    container_name: inscription_suac
+22 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ use Evenementiel\Form\Evenement\EvenementHydratorFactory;
use Evenementiel\Provider\Identity\IdentityProvider;
use Evenementiel\Provider\Identity\IdentityProviderFactory;
use Evenementiel\Provider\Privilege\EvenementPrivileges;
use Evenementiel\Provider\Privilege\EvenementielinscriptionPrivileges;
use Evenementiel\Service\Evenement\EvenementService;
use Evenementiel\Service\Evenement\EvenementServiceFactory;
use Laminas\Router\Http\Literal;
@@ -103,6 +104,7 @@ return [
                        'inscription-participant-gestionnaire',
                        'inscription-etudiant-gestionnaire',
                        'inscription-personnel-gestionnaire',
                        'inscription-groupe-gestionnaire',
                        'pointer-anonyme',
                        'depointer-anonyme',
                    ],
@@ -110,12 +112,18 @@ return [
                        EvenementPrivileges::EVENEMENT_INSCRIPTION_GESTIONNAIRE,
                    ],
                ],
                [
                    'controller' => EvenementController::class,
                    'action' => ['inscription-groupe-gestionnaire', 'inscription-groupe'],
                    'privileges' => [EvenementielinscriptionPrivileges::GROUPE],
                ],
                [
                    'controller' => EvenementController::class,
                    'action' => [
                        'inscription-etudiant',
                        'inscription-personnel',
                        'inscription-externe',
                        'inscription-groupe',
                    ],
                    'privileges' => [
                        EvenementPrivileges::EVENEMENT_INSCRIPTION_PARTICIPANT,
@@ -297,6 +305,20 @@ return [
                                    ],
                                ],
                            ],
                            'inscription-groupe-gestionnaire' => [
                                'type' => Segment::class,
                                'options' => [
                                    'route' => '/inscription-groupe-gestionnaire/:entity',
                                    'defaults' => ['action' => 'inscription-groupe-gestionnaire'],
                                ],
                            ],
                            'inscription-groupe' => [
                                'type' => Segment::class,
                                'options' => [
                                    'route' => '/inscription-groupe/:entity',
                                    'defaults' => ['action' => 'inscription-groupe'],
                                ],
                            ],
                            'inscription-etudiant-gestionnaire' => [
                                'type' => Segment::class,
                                'options' => [
+33 −0
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ use Evenementiel\Form\Inscription\InscriptionParticipantForm;
use Evenementiel\Form\Inscription\InscriptionParticipantFormFactory;
use Evenementiel\Form\Inscription\InscriptionParticipantHydrator;
use Evenementiel\Form\Inscription\InscriptionParticipantHydratorFactory;
use Evenementiel\Form\Inscription\InscriptionGroupeForm;
use Evenementiel\Form\Inscription\InscriptionGroupeFormFactory;
use UnicaenPrivilege\Provider\Rule\PrivilegeRuleProvider;

return [
@@ -119,6 +121,9 @@ return [
                    'action' => [
                        'auto-inscription',
                        'inscription-en-cours',
                        'inscription-historique',
                        'generer-historique',
                        'inscription-groupe',
                    ],
                    'privileges' => [
                        EvenementielinscriptionPrivileges::AUTOINSCRIPTION,
@@ -315,6 +320,26 @@ return [
                                    ],
                                ],
                            ],
                            'inscription-historique' => [
                                'type' => Segment::class,
                                'options' => [
                                    'route' => '/inscription-historique',
                                    'defaults' => [
                                        /** @see InscriptionController::inscriptionHistoriqueAction() */
                                        'action' => 'inscription-historique',
                                    ],
                                ],
                            ],
                            'generer-historique' => [
                                'type' => Segment::class,
                                'options' => [
                                    'route' => '/generer-historique',
                                    'defaults' => [
                                        /** @see InscriptionController::genererHistoriqueAction() */
                                        'action' => 'generer-historique',
                                    ],
                                ],
                            ],
                            'desinscription' => [
                                'type' => Segment::class,
                                'options' => [
@@ -370,6 +395,13 @@ return [
                                'order' => 100,
                                'icon' => 'fas fa-angle-right',
                            ],
                            'inscriptions-historique' => [
                                'label' => "Mes évènements suivis",
                                'route' => 'evenementiel/inscription/inscription-historique',
                                'resource' => PrivilegeController::getResourceId(InscriptionController::class, 'inscription-historique'),
                                'order' => 200,
                                'icon' => 'fas fa-angle-right',
                            ],
                        ],
                    ],
                    'evenementiel' => [
@@ -404,6 +436,7 @@ return [
            InscriptionParticipantForm::class => InscriptionParticipantFormFactory::class,
            InscriptionEtudiantForm::class => InscriptionEtudiantFormFactory::class,
            InscriptionPersonnelForm::class  => InscriptionPersonnelFormFactory::class,
            InscriptionGroupeForm::class => InscriptionGroupeFormFactory::class,
            InscriptionPlaceFieldset::class => InscriptionPlaceFieldsetFactory::class,
        ],
    ],
+16 −8
Original line number Diff line number Diff line
@@ -48,30 +48,38 @@ class InscriptionAssertion extends AbstractAssertion

                    case EtudiantRolesProvider::ROLE_ETUDIANT:
                        $etudiantOk = ($inscription->getParticipant()->getEtudiant() === $etudiant);
                        return $etudiantOk && $inscriptionOk && $etatEvenementOk;
                        return $etudiantOk && $inscription->estIndividuelle() && $inscriptionOk && $etatEvenementOk;
                   case PersonnelRolesProvider::ROLE_PERSONNEL:
                        $personnelOk = ($inscription->getParticipant()->getPersonnel() === $personnel);
                        return $personnelOk && $inscriptionOk && $etatEvenementOk;
                        return $personnelOk && $inscription->estIndividuelle() && $inscriptionOk && $etatEvenementOk;
                  case ExterneRolesProvider::ROLE_EXTERNE:
                        $externeOk = ($inscription->getParticipant()->getEmail() === $user->getEmail());
                        return $externeOk && $inscriptionOk && $etatEvenementOk;
                        return $externeOk && $inscription->estIndividuelle() && $inscriptionOk && $etatEvenementOk;
                  case ExterneRolesProvider::ROLE_GROUPE:
                        $groupeOk = $inscription->estGroupe()
                            && $inscription->getParticipant()->getEmail() === $user->getEmail();
                        return $groupeOk && $inscriptionOk && $etatEvenementOk;
                    default :
                        return true;
                        return false;
                }
                break;
            case EvenementielinscriptionPrivileges::MODIFIER:
                switch ($role->getRoleId()) {
                    case EtudiantRolesProvider::ROLE_ETUDIANT:
                        $etudiantOk = ($inscription->getParticipant()->getEtudiant() === $etudiant);
                        return $etudiantOk && $inscriptionOk && $etatEvenementOk;
                        return $etudiantOk && $inscription->estIndividuelle() && $inscriptionOk && $etatEvenementOk;
                   case PersonnelRolesProvider::ROLE_PERSONNEL:
                        $personnelOk = ($inscription->getParticipant()->getPersonnel() === $personnel);
                        return $personnelOk && $inscriptionOk && $etatEvenementOk;
                        return $personnelOk && $inscription->estIndividuelle() && $inscriptionOk && $etatEvenementOk;
                  case ExterneRolesProvider::ROLE_EXTERNE:
                        $externeOk = ($inscription->getParticipant()->getEmail() === $user->getEmail());
                        return $externeOk && $inscriptionOk && $etatEvenementOk;
                        return $externeOk && $inscription->estIndividuelle() && $inscriptionOk && $etatEvenementOk;
                  case ExterneRolesProvider::ROLE_GROUPE:
                        $groupeOk = $inscription->estGroupe()
                            && $inscription->getParticipant()->getEmail() === $user->getEmail();
                        return $groupeOk && $inscriptionOk && $etatEvenementOk;
                    default :
                        return true;
                        return false;
                }
                break;
        }
Loading