Commit 7434b423 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

Merge branch 'starling' into starling-timesheet

parents ed7c0298 7e0363dd
Loading
Loading
Loading
Loading
Loading
+37 −7
Original line number Diff line number Diff line
@@ -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;
@@ -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") {
@@ -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);
@@ -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());
+2 −0
Original line number Diff line number Diff line
@@ -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
{
@@ -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;
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -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')
+7 −0
Original line number Diff line number Diff line
@@ -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>
+1 −0
Original line number Diff line number Diff line
@@ -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