Loading module/Oscar/src/Oscar/Controller/ActivityMotsClesController.php +37 −7 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ use Laminas\Http\Response; use Laminas\View\Model\JsonModel; use Oscar\Entity\ActivityMotCle; use Oscar\Provider\Privileges; use Oscar\Service\ProjectGrantService; use Oscar\Traits\UseLoggerService; use Oscar\Traits\UseLoggerServiceTrait; use Throwable; Loading @@ -14,23 +15,44 @@ class ActivityMotsClesController extends AbstractOscarController implements UseL { use UseLoggerServiceTrait; /** * @return ProjectGrantService */ public function getActivityService(): ProjectGrantService { return $this->activityService; } /** * @param ProjectGrantService $activityService */ public function setActivityService(ProjectGrantService $activityService): void { $this->activityService = $activityService; } public function apiAction() { $this->getOscarUserContextService()->check(Privileges::MAINTENANCE_DISCIPLINE_MANAGE); try { $activity = NULL; $activityId = $this->params()->fromQuery('activity_id'); if ($activityId) { $activity = $this->getActivityService()->getGrant($activityId); } if ($this->getRequest()->getMethod() == "GET") { $includeActivityCountQueryParam = $this->params()->fromQuery('include_activity_count'); $includeActivityCount = $includeActivityCountQueryParam && $includeActivityCountQueryParam === "true"; return $this->getMotsCles($includeActivityCount); return $this->getMotsCles($includeActivityCount, $activity); } if ($this->getRequest()->getMethod() == "POST") { $action_mot_cle_json = json_decode($this->getRequest()->getContent()); if ($action_mot_cle_json->action == "create") { return $this->createMotCle($action_mot_cle_json); return $this->createMotCle($action_mot_cle_json, $activity); } if ($action_mot_cle_json->action == "delete") { Loading Loading @@ -59,9 +81,13 @@ class ActivityMotsClesController extends AbstractOscarController implements UseL } } private function getMotsCles($includeCount) { private function getMotsCles($includeCount, $activity) { $this->getOscarUserContextService()->check(Privileges::MAINTENANCE_DISCIPLINE_MANAGE); if ($activity) { $this->getOscarUserContextService()->check(Privileges::ACTIVITY_EDIT, $activity); } else { $this->getOscarUserContextService()->check(Privileges::ACTIVITY_CREATE); } /** @var ActivityMotCleRepository $activityMotCleRepository */ $activityMotCleRepository = $this->getEntityManager()->getRepository(ActivityMotCle::class); Loading Loading @@ -91,9 +117,13 @@ class ActivityMotsClesController extends AbstractOscarController implements UseL return $response; } private function createMotCle($action_mot_cle_json) { private function createMotCle($action_mot_cle_json, $activity) { $this->getOscarUserContextService()->check(Privileges::MAINTENANCE_DISCIPLINE_MANAGE); if ($activity) { $this->getOscarUserContextService()->check(Privileges::ACTIVITY_EDIT, $activity); } else { $this->getOscarUserContextService()->check(Privileges::ACTIVITY_CREATE); } $this->getLoggerService()->info("createMotCle"); $this->getLoggerService()->info("by: " . $this->getCurrentPerson()); Loading module/Oscar/src/Oscar/Controller/ActivityMotsClesControllerFactory.php +2 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ use Doctrine\ORM\EntityManager; use Interop\Container\ContainerInterface; use Laminas\ServiceManager\Factory\FactoryInterface; use Oscar\Service\OscarUserContext; use Oscar\Service\ProjectGrantService; class ActivityMotsClesControllerFactory implements FactoryInterface { Loading @@ -15,6 +16,7 @@ class ActivityMotsClesControllerFactory implements FactoryInterface $c->setEntityManager($container->get(EntityManager::class)); $c->setOscarUserContextService($container->get(OscarUserContext::class)); $c->setLoggerService($container->get('Logger')); $c->setActivityService($container->get(ProjectGrantService::class)); return $c; } } module/Oscar/src/Oscar/Entity/RoleRepository.php +2 −2 Original line number Diff line number Diff line Loading @@ -239,11 +239,11 @@ class RoleRepository extends EntityRepository /** * @param string $roleId * @return array * @return Role * @throws NoResultException * @throws \Doctrine\ORM\NonUniqueResultException */ public function getRoleByRoleId(string $roleId): array public function getRoleByRoleId(string $roleId): Role { $queryRole = $this->createQueryBuilder('r') ->from(Role::class, 'role') Loading module/Oscar/view/oscar/administration/accueil.phtml +7 −0 Original line number Diff line number Diff line Loading @@ -274,8 +274,15 @@ <i class="icon-tags"></i> Mots clés </strong> <?php if ($this->grant()->privilege(\Oscar\Provider\Privileges::MAINTENANCE_DISCIPLINE_MANAGE)): ?> <a href="<?= $this->url('administration/motscles') ?>" class="right"><i class="icon-cog"></i><?= _("Configurer") ?></a> <?php else: ?> <em><i class="icon-lock"></i> Privilège insuffisant</em> <?php endif; ?> </h3> <p>Permet de gérer les mots clés disponibles.</p> </article> Loading module/Oscar/view/oscar/project-grant/form.phtml +1 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ <div class="col-md-6"> <div id="activity-mots-cles" data-url="<?= $this->url('activity-mots-cles/api') ?>" data-activityid="<?= $activity->getId() ?>" data-motsclesselectionnes="<?php echo '['; $count = count($activity->getMotscles()); Loading Loading
module/Oscar/src/Oscar/Controller/ActivityMotsClesController.php +37 −7 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ use Laminas\Http\Response; use Laminas\View\Model\JsonModel; use Oscar\Entity\ActivityMotCle; use Oscar\Provider\Privileges; use Oscar\Service\ProjectGrantService; use Oscar\Traits\UseLoggerService; use Oscar\Traits\UseLoggerServiceTrait; use Throwable; Loading @@ -14,23 +15,44 @@ class ActivityMotsClesController extends AbstractOscarController implements UseL { use UseLoggerServiceTrait; /** * @return ProjectGrantService */ public function getActivityService(): ProjectGrantService { return $this->activityService; } /** * @param ProjectGrantService $activityService */ public function setActivityService(ProjectGrantService $activityService): void { $this->activityService = $activityService; } public function apiAction() { $this->getOscarUserContextService()->check(Privileges::MAINTENANCE_DISCIPLINE_MANAGE); try { $activity = NULL; $activityId = $this->params()->fromQuery('activity_id'); if ($activityId) { $activity = $this->getActivityService()->getGrant($activityId); } if ($this->getRequest()->getMethod() == "GET") { $includeActivityCountQueryParam = $this->params()->fromQuery('include_activity_count'); $includeActivityCount = $includeActivityCountQueryParam && $includeActivityCountQueryParam === "true"; return $this->getMotsCles($includeActivityCount); return $this->getMotsCles($includeActivityCount, $activity); } if ($this->getRequest()->getMethod() == "POST") { $action_mot_cle_json = json_decode($this->getRequest()->getContent()); if ($action_mot_cle_json->action == "create") { return $this->createMotCle($action_mot_cle_json); return $this->createMotCle($action_mot_cle_json, $activity); } if ($action_mot_cle_json->action == "delete") { Loading Loading @@ -59,9 +81,13 @@ class ActivityMotsClesController extends AbstractOscarController implements UseL } } private function getMotsCles($includeCount) { private function getMotsCles($includeCount, $activity) { $this->getOscarUserContextService()->check(Privileges::MAINTENANCE_DISCIPLINE_MANAGE); if ($activity) { $this->getOscarUserContextService()->check(Privileges::ACTIVITY_EDIT, $activity); } else { $this->getOscarUserContextService()->check(Privileges::ACTIVITY_CREATE); } /** @var ActivityMotCleRepository $activityMotCleRepository */ $activityMotCleRepository = $this->getEntityManager()->getRepository(ActivityMotCle::class); Loading Loading @@ -91,9 +117,13 @@ class ActivityMotsClesController extends AbstractOscarController implements UseL return $response; } private function createMotCle($action_mot_cle_json) { private function createMotCle($action_mot_cle_json, $activity) { $this->getOscarUserContextService()->check(Privileges::MAINTENANCE_DISCIPLINE_MANAGE); if ($activity) { $this->getOscarUserContextService()->check(Privileges::ACTIVITY_EDIT, $activity); } else { $this->getOscarUserContextService()->check(Privileges::ACTIVITY_CREATE); } $this->getLoggerService()->info("createMotCle"); $this->getLoggerService()->info("by: " . $this->getCurrentPerson()); Loading
module/Oscar/src/Oscar/Controller/ActivityMotsClesControllerFactory.php +2 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ use Doctrine\ORM\EntityManager; use Interop\Container\ContainerInterface; use Laminas\ServiceManager\Factory\FactoryInterface; use Oscar\Service\OscarUserContext; use Oscar\Service\ProjectGrantService; class ActivityMotsClesControllerFactory implements FactoryInterface { Loading @@ -15,6 +16,7 @@ class ActivityMotsClesControllerFactory implements FactoryInterface $c->setEntityManager($container->get(EntityManager::class)); $c->setOscarUserContextService($container->get(OscarUserContext::class)); $c->setLoggerService($container->get('Logger')); $c->setActivityService($container->get(ProjectGrantService::class)); return $c; } }
module/Oscar/src/Oscar/Entity/RoleRepository.php +2 −2 Original line number Diff line number Diff line Loading @@ -239,11 +239,11 @@ class RoleRepository extends EntityRepository /** * @param string $roleId * @return array * @return Role * @throws NoResultException * @throws \Doctrine\ORM\NonUniqueResultException */ public function getRoleByRoleId(string $roleId): array public function getRoleByRoleId(string $roleId): Role { $queryRole = $this->createQueryBuilder('r') ->from(Role::class, 'role') Loading
module/Oscar/view/oscar/administration/accueil.phtml +7 −0 Original line number Diff line number Diff line Loading @@ -274,8 +274,15 @@ <i class="icon-tags"></i> Mots clés </strong> <?php if ($this->grant()->privilege(\Oscar\Provider\Privileges::MAINTENANCE_DISCIPLINE_MANAGE)): ?> <a href="<?= $this->url('administration/motscles') ?>" class="right"><i class="icon-cog"></i><?= _("Configurer") ?></a> <?php else: ?> <em><i class="icon-lock"></i> Privilège insuffisant</em> <?php endif; ?> </h3> <p>Permet de gérer les mots clés disponibles.</p> </article> Loading
module/Oscar/view/oscar/project-grant/form.phtml +1 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ <div class="col-md-6"> <div id="activity-mots-cles" data-url="<?= $this->url('activity-mots-cles/api') ?>" data-activityid="<?= $activity->getId() ?>" data-motsclesselectionnes="<?php echo '['; $count = count($activity->getMotscles()); Loading