Commit 424f0943 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Utilisation des rôles pour masquage de documentation

parent 095d0f1d
Loading
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -11,7 +11,6 @@ use UnicaenUtilisateur\Service\User\UserServiceAwareTrait;
class DocumentationController extends AbstractActionController
{
    use LienServiceAwareTrait;
    use PrivilegeServiceAwareTrait;
    use UserServiceAwareTrait;

    public function indexAction() : ViewModel
@@ -19,7 +18,6 @@ class DocumentationController extends AbstractActionController
        $liens = $this->getLienService()->getLiens(false);
        $vm =  new ViewModel([
            'liens' => $liens,
            'privilegeService' => $this->getPrivilegeService(),
            'role' => $this->getUserService()->getConnectedRole(),
        ]);
        $vm->setTemplate('unicaen-aide/documentation/afficher');
+0 −2
Original line number Diff line number Diff line
@@ -25,12 +25,10 @@ class DocumentationControllerFactory {
         * @var UserService $userService
         */
        $lienService = $container->get(LienService::class);
        $privilegeService = $container->get(PrivilegeService::class);
        $userService = $container->get(UserService::class);

        $controller = new DocumentationController();
        $controller->setLienService($lienService);
        $controller->setPrivilegeService($privilegeService);
        $controller->setUserService($userService);
        return $controller;
    }
+12 −0
Original line number Diff line number Diff line
@@ -9,9 +9,11 @@ use Laminas\View\Model\ViewModel;
use UnicaenAide\Entity\Db\DocumentationLien;
use UnicaenAide\Form\Documentation\Lien\LienFormAwareTrait;
use UnicaenAide\Service\Documentation\Lien\LienServiceAwareTrait;
use UnicaenUtilisateur\Service\Role\RoleServiceAwareTrait;

class LienController extends AbstractActionController {
    use LienServiceAwareTrait;
    use RoleServiceAwareTrait;
    use LienFormAwareTrait;

    public function indexAction() : ViewModel
@@ -27,9 +29,19 @@ class LienController extends AbstractActionController {
    {
        $lien = $this->getLienService()->getRequestedLien($this);
        
        $roles = [];
        if (!empty($lien->getRoles()))
        {
            foreach ($lien->getRoles() as $roleId) {
                $role = $this->getRoleService()->find($roleId);
                if ($role) $roles[] = $role;
            }
        }

        return new ViewModel([
            'title' => "Affichage de la lien",
            'lien' => $lien,
            'roles' => $roles,
        ]);
    }

+4 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ use Psr\Container\ContainerInterface;
use Psr\Container\NotFoundExceptionInterface;
use UnicaenAide\Form\Documentation\Lien\LienForm;
use UnicaenAide\Service\Documentation\Lien\LienService;
use UnicaenUtilisateur\Service\Role\RoleService;

class LienControllerFactory {

@@ -20,13 +21,16 @@ class LienControllerFactory {
    {
        /**
         * @var LienService $lienService
         * @var RoleService $roleService
         * @var LienForm $lienForm
         */
        $lienService = $container->get(LienService::class);
        $roleService = $container->get(RoleService::class);
        $lienForm = $container->get('FormElementManager')->get(LienForm::class);

        $controller = new LienController();
        $controller->setLienService($lienService);
        $controller->setRoleService($roleService);
        $controller->setLienForm($lienForm);
        return $controller;
    }
+7 −12
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
namespace UnicaenAide\Entity\Db;



class DocumentationLien {

    private ?int $id                = null;
@@ -13,7 +14,7 @@ class DocumentationLien {
    private ?int $ordre             = null;
    private ?bool $historisee       = false;

    private ?string $privilegeCode  = null;
    private ?string $roles = null;

    public function getId(): int
    {
@@ -85,22 +86,16 @@ class DocumentationLien {
        $this->historisee = $historisee;
    }

    /**
     * @return string|null
     */
    public function getPrivilegeCode(): ?string
    public function getRoles() : array
    {
        return $this->privilegeCode;
        if ($this->roles === null) return [];
        return explode(';', $this->roles);
    }

    /**
     * @param string|null $privilegeCode
     */
    public function setPrivilegeCode(?string $privilegeCode): void
    public function setRoles(?string $roles)
    {
        $this->privilegeCode = $privilegeCode;
        $this->roles = $roles;
    }



}
 No newline at end of file
Loading