Loading module/Application/config/others/financement.config.php 0 → 100755 +34 −0 Changes for module/Application/config/others/financement.config.php: 34 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Application; use Application\Provider\Privilege\FinancementPrivileges; use Application\View\Helper\FinancementFormatterHelperFactory; use UnicaenAuth\Provider\Rule\PrivilegeRuleProvider; return [ 'bjyauthorize' => [ 'resource_providers' => [ 'BjyAuthorize\Provider\Resource\Config' => [ 'OrigineFinancement' => [], ], ], 'rule_providers' => [ PrivilegeRuleProvider::class => [ 'allow' => [ [ 'privileges' => [ FinancementPrivileges::FINANCEMENT_VOIR_ORIGINE_NON_VISIBLE, ], 'resources' => ['OrigineFinancement'], ], ], ], ], ], 'view_helpers' => [ 'factories' => [ 'financementFormatter' => FinancementFormatterHelperFactory::class, ], ], ]; module/Application/src/Application/Controller/ExportController.php +7 −2 Changes for module/Application/src/Application/Controller/ExportController.php: 7 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ use Application\Entity\Db\Acteur; use Application\Entity\Db\Financement; use Application\Entity\Db\Role; use Application\Entity\Db\These; use Application\Entity\Db\VersionFichier; use Application\Provider\Privilege\FinancementPrivileges; use Application\Service\FichierThese\FichierTheseServiceAwareTrait; use Application\Service\These\TheseRechercheServiceAwareTrait; use Application\Service\These\TheseServiceAwareTrait; Loading Loading @@ -78,7 +78,12 @@ class ExportController extends AbstractController $financements = $these->getFinancements(); $origines = []; /** @var Financement $financement */ foreach ($financements as $financement) $origines[] = $financement->getOrigineFinancement()->getLibelleLong(); foreach ($financements as $financement) { $origine = $financement->getOrigineFinancement(); if ($origine->isVisible() || $this->isAllowed($origine, FinancementPrivileges::FINANCEMENT_VOIR_ORIGINE_NON_VISIBLE)) { $origines[] = $origine->getLibelleLong(); } } return implode(",", $origines); }, 'Complément sur les financements' => function ($variables) { Loading module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.OrigineFinancement.dcm.xml +2 −2 Changes for module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.OrigineFinancement.dcm.xml: 2 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -2,8 +2,7 @@ <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="Application\Entity\Db\OrigineFinancement" table="ORIGINE_FINANCEMENT" repository-class=""> <entity name="Application\Entity\Db\OrigineFinancement" table="ORIGINE_FINANCEMENT"> <id name="id" type="integer" column="ID"> <generator strategy="SEQUENCE"/> </id> Loading @@ -12,6 +11,7 @@ <field name="code" column="CODE" type="string" length="64" nullable="false"/> <field name="libelleLong" column="LIBELLE_LONG" type="string" length="256" nullable="false"/> <field name="libelleCourt" column="LIBELLE_COURT" type="string" length="64" nullable="false"/> <field name="visible" column="VISIBLE" type="boolean"/> <many-to-one field="source" target-entity="Application\Entity\Db\Source"> <join-columns> Loading module/Application/src/Application/Entity/Db/OrigineFinancement.php +30 −3 Changes for module/Application/src/Application/Entity/Db/OrigineFinancement.php: 30 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -3,10 +3,10 @@ namespace Application\Entity\Db; use UnicaenApp\Entity\HistoriqueAwareTrait; use Application\Entity\Db\Source; class OrigineFinancement { use Zend\Permissions\Acl\Resource\ResourceInterface; class OrigineFinancement implements ResourceInterface { use HistoriqueAwareTrait; /** @var int */ Loading @@ -21,6 +21,16 @@ class OrigineFinancement { private $source; /** @var string */ private $sourceCode; /** @var bool */ private $visible; /** * @inheritDoc */ public function getResourceId(): string { return 'OrigineFinancement'; } /** * @return int Loading Loading @@ -120,4 +130,21 @@ class OrigineFinancement { return $this; } /** * @return bool */ public function isVisible(): bool { return $this->visible; } /** * @param bool $visible * @return self */ public function setVisible(bool $visible): self { $this->visible = $visible; return $this; } } No newline at end of file module/Application/src/Application/Filter/FinancementFormatter.php +37 −38 Changes for module/Application/src/Application/Filter/FinancementFormatter.php: 37 added lines, 38 removed lines. Original line number Diff line number Diff line Loading @@ -3,8 +3,16 @@ namespace Application\Filter; use Application\Entity\Db\Financement; class FinancementFormatter { use Application\Entity\Db\OrigineFinancement; use Application\Provider\Privilege\FinancementPrivileges; use Application\Service\AuthorizeServiceAwareTrait; use Application\View\Helper\FinancementFormatterHelper; use UnicaenApp\Exception\LogicException; use UnicaenAuth\Service\AuthorizeService; class FinancementFormatter { use AuthorizeServiceAwareTrait; const DISPLAY_AS_LINE = 'DISPLAY_LINE'; Loading @@ -18,47 +26,21 @@ class FinancementFormatter { /** @var boolean */ private $displayComplement; /** * @param bool $displayComplement * @return FinancementFormatter */ public function setDisplayComplement(bool $displayComplement) { $this->displayComplement = $displayComplement; return $this; } /** * @return string */ public function getDisplayAs() { return $this->displayAs; } /** * @param string $displayAs * @return FinancementFormatter * @return self */ public function setDisplayAs($displayAs) public function setDisplayAs(string $displayAs): self { $this->displayAs = $displayAs; return $this; } /** * @return string */ public function getSortBy() { return $this->sortBy; } /** * @param string $sortBy * @return FinancementFormatter * @return self */ public function setSortBy($sortBy) public function setSortBy(string $sortBy): self { $this->sortBy = $sortBy; return $this; Loading @@ -68,10 +50,10 @@ class FinancementFormatter { * @param Financement[] $financements * @return string */ public function doFormat(array $financements) { public function doFormat(array $financements): string { //sorting switch($this->getSortBy()) { switch($this->sortBy) { case FinancementFormatter::SORT_BY_DATE : usort($financements, function (Financement $a, Financement $b) { return $a->getAnnee() - $b->getAnnee(); Loading @@ -86,11 +68,15 @@ class FinancementFormatter { $output = ""; foreach ($financements as $financement) { switch($this->getDisplayAs()) { switch($this->displayAs) { case FinancementFormatter::DISPLAY_AS_LINE : $infos = []; if ($financement->getAnnee()) $infos[] = $financement->getAnnee(); if ($financement->getOrigineFinancement()) $infos[] = $financement->getOrigineFinancement()->getLibelleLong(); if ($origine = $financement->getOrigineFinancement()) { if ($this->isOrigineVisible($origine)) { $infos[] = $origine->getLibelleLong(); } } if ($this->displayComplement === true AND $financement->getComplementFinancement()) $infos[] = $financement->getComplementFinancement(); if ($financement->getQuotiteFinancement()) $infos[] = $financement->getQuotiteFinancement(); if ($financement->getDateDebut()) $infos[] = $financement->getDateDebut()->format('d/m/Y'); Loading @@ -104,11 +90,24 @@ class FinancementFormatter { return $output; } private function isOrigineVisible(OrigineFinancement $origine): bool { if ($this->authorizeService === null) { throw new LogicException( 'Vous devez injecter dans ce formatter une instance du service ' . AuthorizeService::class . '. ' . 'NB : si vous êtes dans une vue, utilisez $this->financementFormatter().' ); } return $origine->isVisible() || $this->authorizeService->isAllowed($origine, FinancementPrivileges::FINANCEMENT_VOIR_ORIGINE_NON_VISIBLE); } /** * @param Financement $financement * @return string|null */ public function formatTypeFinancement(Financement $financement) private function formatTypeFinancement(Financement $financement): ?string { if (! $financement->getLibelleTypeFinancement()) { return null; Loading Loading
module/Application/config/others/financement.config.php 0 → 100755 +34 −0 Changes for module/Application/config/others/financement.config.php: 34 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Application; use Application\Provider\Privilege\FinancementPrivileges; use Application\View\Helper\FinancementFormatterHelperFactory; use UnicaenAuth\Provider\Rule\PrivilegeRuleProvider; return [ 'bjyauthorize' => [ 'resource_providers' => [ 'BjyAuthorize\Provider\Resource\Config' => [ 'OrigineFinancement' => [], ], ], 'rule_providers' => [ PrivilegeRuleProvider::class => [ 'allow' => [ [ 'privileges' => [ FinancementPrivileges::FINANCEMENT_VOIR_ORIGINE_NON_VISIBLE, ], 'resources' => ['OrigineFinancement'], ], ], ], ], ], 'view_helpers' => [ 'factories' => [ 'financementFormatter' => FinancementFormatterHelperFactory::class, ], ], ];
module/Application/src/Application/Controller/ExportController.php +7 −2 Changes for module/Application/src/Application/Controller/ExportController.php: 7 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ use Application\Entity\Db\Acteur; use Application\Entity\Db\Financement; use Application\Entity\Db\Role; use Application\Entity\Db\These; use Application\Entity\Db\VersionFichier; use Application\Provider\Privilege\FinancementPrivileges; use Application\Service\FichierThese\FichierTheseServiceAwareTrait; use Application\Service\These\TheseRechercheServiceAwareTrait; use Application\Service\These\TheseServiceAwareTrait; Loading Loading @@ -78,7 +78,12 @@ class ExportController extends AbstractController $financements = $these->getFinancements(); $origines = []; /** @var Financement $financement */ foreach ($financements as $financement) $origines[] = $financement->getOrigineFinancement()->getLibelleLong(); foreach ($financements as $financement) { $origine = $financement->getOrigineFinancement(); if ($origine->isVisible() || $this->isAllowed($origine, FinancementPrivileges::FINANCEMENT_VOIR_ORIGINE_NON_VISIBLE)) { $origines[] = $origine->getLibelleLong(); } } return implode(",", $origines); }, 'Complément sur les financements' => function ($variables) { Loading
module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.OrigineFinancement.dcm.xml +2 −2 Changes for module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.OrigineFinancement.dcm.xml: 2 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -2,8 +2,7 @@ <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="Application\Entity\Db\OrigineFinancement" table="ORIGINE_FINANCEMENT" repository-class=""> <entity name="Application\Entity\Db\OrigineFinancement" table="ORIGINE_FINANCEMENT"> <id name="id" type="integer" column="ID"> <generator strategy="SEQUENCE"/> </id> Loading @@ -12,6 +11,7 @@ <field name="code" column="CODE" type="string" length="64" nullable="false"/> <field name="libelleLong" column="LIBELLE_LONG" type="string" length="256" nullable="false"/> <field name="libelleCourt" column="LIBELLE_COURT" type="string" length="64" nullable="false"/> <field name="visible" column="VISIBLE" type="boolean"/> <many-to-one field="source" target-entity="Application\Entity\Db\Source"> <join-columns> Loading
module/Application/src/Application/Entity/Db/OrigineFinancement.php +30 −3 Changes for module/Application/src/Application/Entity/Db/OrigineFinancement.php: 30 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -3,10 +3,10 @@ namespace Application\Entity\Db; use UnicaenApp\Entity\HistoriqueAwareTrait; use Application\Entity\Db\Source; class OrigineFinancement { use Zend\Permissions\Acl\Resource\ResourceInterface; class OrigineFinancement implements ResourceInterface { use HistoriqueAwareTrait; /** @var int */ Loading @@ -21,6 +21,16 @@ class OrigineFinancement { private $source; /** @var string */ private $sourceCode; /** @var bool */ private $visible; /** * @inheritDoc */ public function getResourceId(): string { return 'OrigineFinancement'; } /** * @return int Loading Loading @@ -120,4 +130,21 @@ class OrigineFinancement { return $this; } /** * @return bool */ public function isVisible(): bool { return $this->visible; } /** * @param bool $visible * @return self */ public function setVisible(bool $visible): self { $this->visible = $visible; return $this; } } No newline at end of file
module/Application/src/Application/Filter/FinancementFormatter.php +37 −38 Changes for module/Application/src/Application/Filter/FinancementFormatter.php: 37 added lines, 38 removed lines. Original line number Diff line number Diff line Loading @@ -3,8 +3,16 @@ namespace Application\Filter; use Application\Entity\Db\Financement; class FinancementFormatter { use Application\Entity\Db\OrigineFinancement; use Application\Provider\Privilege\FinancementPrivileges; use Application\Service\AuthorizeServiceAwareTrait; use Application\View\Helper\FinancementFormatterHelper; use UnicaenApp\Exception\LogicException; use UnicaenAuth\Service\AuthorizeService; class FinancementFormatter { use AuthorizeServiceAwareTrait; const DISPLAY_AS_LINE = 'DISPLAY_LINE'; Loading @@ -18,47 +26,21 @@ class FinancementFormatter { /** @var boolean */ private $displayComplement; /** * @param bool $displayComplement * @return FinancementFormatter */ public function setDisplayComplement(bool $displayComplement) { $this->displayComplement = $displayComplement; return $this; } /** * @return string */ public function getDisplayAs() { return $this->displayAs; } /** * @param string $displayAs * @return FinancementFormatter * @return self */ public function setDisplayAs($displayAs) public function setDisplayAs(string $displayAs): self { $this->displayAs = $displayAs; return $this; } /** * @return string */ public function getSortBy() { return $this->sortBy; } /** * @param string $sortBy * @return FinancementFormatter * @return self */ public function setSortBy($sortBy) public function setSortBy(string $sortBy): self { $this->sortBy = $sortBy; return $this; Loading @@ -68,10 +50,10 @@ class FinancementFormatter { * @param Financement[] $financements * @return string */ public function doFormat(array $financements) { public function doFormat(array $financements): string { //sorting switch($this->getSortBy()) { switch($this->sortBy) { case FinancementFormatter::SORT_BY_DATE : usort($financements, function (Financement $a, Financement $b) { return $a->getAnnee() - $b->getAnnee(); Loading @@ -86,11 +68,15 @@ class FinancementFormatter { $output = ""; foreach ($financements as $financement) { switch($this->getDisplayAs()) { switch($this->displayAs) { case FinancementFormatter::DISPLAY_AS_LINE : $infos = []; if ($financement->getAnnee()) $infos[] = $financement->getAnnee(); if ($financement->getOrigineFinancement()) $infos[] = $financement->getOrigineFinancement()->getLibelleLong(); if ($origine = $financement->getOrigineFinancement()) { if ($this->isOrigineVisible($origine)) { $infos[] = $origine->getLibelleLong(); } } if ($this->displayComplement === true AND $financement->getComplementFinancement()) $infos[] = $financement->getComplementFinancement(); if ($financement->getQuotiteFinancement()) $infos[] = $financement->getQuotiteFinancement(); if ($financement->getDateDebut()) $infos[] = $financement->getDateDebut()->format('d/m/Y'); Loading @@ -104,11 +90,24 @@ class FinancementFormatter { return $output; } private function isOrigineVisible(OrigineFinancement $origine): bool { if ($this->authorizeService === null) { throw new LogicException( 'Vous devez injecter dans ce formatter une instance du service ' . AuthorizeService::class . '. ' . 'NB : si vous êtes dans une vue, utilisez $this->financementFormatter().' ); } return $origine->isVisible() || $this->authorizeService->isAllowed($origine, FinancementPrivileges::FINANCEMENT_VOIR_ORIGINE_NON_VISIBLE); } /** * @param Financement $financement * @return string|null */ public function formatTypeFinancement(Financement $financement) private function formatTypeFinancement(Financement $financement): ?string { if (! $financement->getLibelleTypeFinancement()) { return null; Loading