Commit 39a49db4 authored by David Surville's avatar David Surville
Browse files

Réécriture des classes des entités et du mapping

parent 2db7d233
Loading
Loading
Loading
Loading
Loading
+107 −69
Original line number Diff line number Diff line
@@ -8,142 +8,175 @@ use UnicaenPrivilege\Provider\Privilege\Privileges;
use UnicaenUtilisateur\Entity\Db\RoleInterface;
use Zend\Permissions\Acl\Resource\ResourceInterface;


/**
 * Privilege entity abstract mother class.
 *
 * @ORM\MappedSuperclass
 */
abstract class AbstractPrivilege implements PrivilegeInterface, ResourceInterface
{
    /**
     * @var int
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @var string
     * @ORM\Column(name="code", type="string", length=150, unique=false, nullable=false)
     */
    protected $code;

    /**
     * @var string
     * @ORM\Column(name="libelle", type="string", length=200, unique=false, nullable=false)
     */
    protected $libelle;

    /**
     * @var int
     * @ORM\Column(name="ordre", type="integer", unique=false, nullable=true)
     */
    protected $ordre;

    /**
     * @var Categorie
     * @ORM\ManyToOne(targetEntity="Categorie", inversedBy="privilege")
     * @ORM\JoinColumn(name="categorie_id", referencedColumnName="id")
     * @var CategorieInterface
     */
    protected $categorie;

    /**
     * @ORM\ManyToMany(targetEntity="UnicaenAuth\Entity\Db\Role",cascade={"all"})
     * @ORM\JoinTable(
     *     name="role_privilege",
     *     joinColumns={@ORM\JoinColumn(name="privilege_id", referencedColumnName="id", onDelete="cascade")},
     *     inverseJoinColumns={@ORM\JoinColumn(name="role_id", referencedColumnName="id", onDelete="cascade")}
     *
     * )
     * @var Collection
     */
    protected $role;
    protected $roles;


    /**
     * Constructor
     */
    public function __construct()
    {
        $this->role = new ArrayCollection();
        $this->roles = new ArrayCollection();
    }

    /**
     * @param string $code
     * @return Privilege
     * @return string
     */
    public function setCode(string $code) : PrivilegeInterface
    public function __toString()
    {
        $this->code = $code;
        return $this->getLibelle();
    }

    /**
     * Get id.
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set id.
     *
     * @param int $id
     * @return PrivilegeInterface
     */
    public function setId($id)
    {
        $this->id = (int)$id;

        return $this;
    }

    /**
     * Get code.
     *
     * @return string
     */
    public function getCode() : ?string
    public function getCode()
    {
        return $this->code;
    }

    public function getFullCode() : string
    /**
     * Set code.
     *
     * @param string $code
     * @return PrivilegeInterface
     */
    public function setCode($code)
    {
        return $this->getCategorie()->getCode() . '-' . $this->getCode();
        $this->code = $code;

        return $this;
    }

    /**
     * @param string $libelle
     * @return Privilege
     * Get code with category.
     *
     * @return string
     */
    public function setLibelle(string $libelle) : PrivilegeInterface
    public function getFullCode()
    {
        $this->libelle = $libelle;

        return $this;
        return $this->getCategorie()->getCode() . '-' . $this->getCode();
    }

    /**
     * Get libelle
     * Get libelle.
     *
     * @return string
     */
    public function getLibelle() : ?string
    public function getLibelle()
    {
        return $this->libelle;
    }

    /**
     * Set libelle.
     *
     * @param string $libelle
     * @return PrivilegeInterface
     */
    public function setLibelle($libelle)
    {
        $this->libelle = $libelle;

        return $this;
    }

    /**
     * Get ordre.
     *
     * @return integer
     */
    function getOrdre() : ?int
    function getOrdre()
    {
        return $this->ordre;
    }

    /**
     * Set ordre.
     *
     * @param integer $ordre
     * @return self
     * @return PrivilegeInterface
     */
    function setOrdre(int $ordre) : PrivilegeInterface
    function setOrdre($ordre)
    {
        $this->ordre = $ordre;
        $this->ordre = (int)$ordre;

        return $this;
    }


    /**
     * @return integer
     * Get categorie.
     *
     * @return CategorieInterface
     */
    public function getId() : int
    public function getCategorie()
    {
        return $this->id;
        return $this->categorie;
    }

    /**
     * @param Categorie|null $categorie
     * @return self
     * Set categorie.
     *
     * @param CategorieInterface $categorie
     * @return PrivilegeInterface
     */
    public function setCategorie(?Categorie $categorie = null) : PrivilegeInterface
    public function setCategorie(CategorieInterface $categorie)
    {
        $this->categorie = $categorie;

@@ -151,53 +184,58 @@ abstract class AbstractPrivilege implements PrivilegeInterface, ResourceInterfac
    }

    /**
     * @return Categorie
     * @return Collection
     */
    public function getCategorie() : ?Categorie
    public function getRoles()
    {
        return $this->categorie;
        return $this->roles;
    }

    /**
     * Add role.
     *
     * @param RoleInterface $role
     * @return self
     * @return PrivilegeInterface
     */
    public function addRole(RoleInterface $role) : PrivilegeInterface
    public function addRole(RoleInterface $role)
    {
        $this->role->add($role);
        $this->roles->add($role);

        return $this;
    }

    /**
     * Remove role.
     *
     * @param RoleInterface $role
     * @return self
     * @return PrivilegeInterface
     */
    public function removeRole(RoleInterface $role) : PrivilegeInterface
    public function removeRole(RoleInterface $role)
    {
        $this->role->removeElement($role);
        $this->roles->removeElement($role);

        return $this;
    }

    /**
     * @return Collection
     * Check privilege role
     *
     * @param RoleInterface $role
     * @return bool
     */
    public function getRole() : Collection
    function hasRole(RoleInterface $role)
    {
        return $this->role;
        foreach ($this->roles as $r) {
            if ($r === $role) return true;
        }

    /**
     * @return string
     */
    public function __toString() : string
    {
        return $this->getLibelle();
        return false;
    }

    /**
     * @return string
     */
    public function getResourceId() : string
    public function getResourceId()
    {
        return Privileges::getResourceId($this);
    }
+105 −37
Original line number Diff line number Diff line
@@ -3,144 +3,212 @@
namespace UnicaenPrivilege\Entity\Db;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;

class Categorie
{
    /**@var int */
    /**
     * @var int
     */
    private $id;
    /**@var string */

    /**
     * @var string
     */
    private $code;
    /** @var string */

    /**
     * @var string
     */
    private $libelle;
    /** @var string */

    /**
     * @var string
     */
    private $namespace;
    /** @var int */

    /**
     * @var int
     */
    private $ordre;
    /** @var ArrayCollection */

    /**
     * @var ArrayCollection
     */
    private $privileges;


    /**
     * Categorie constructor
     */
    public function __construct()
    {
        $this->privileges = new ArrayCollection();
    }

    /**
     * @return string
     */
    public function __toString()
    {
        return $this->getLibelle();
    }

    /**
     * Get id.
     *
     * @return integer
     */
    public function getId() : ?int
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set id.
     *
     * @param int $id
     * @return CategorieInterface
     */
    public function setId($id)
    {
        $this->id = (int)$id;

        return $this;
    }

    /**
     * Get code.
     *
     * @return string
     */
    public function getCode() : ?string
    public function getCode()
    {
        return $this->code;
    }

    /**
     * Set code.
     *
     * @param string $code
     * @return Categorie
     * @return CategorieInterface
     */
    public function setCode(string $code) : Categorie
    public function setCode($code)
    {
        $this->code = $code;

        return $this;
    }

    /**
     * Get libelle.
     *
     * @return string
     */
    public function getLibelle() : ?string
    public function getLibelle()
    {
        return $this->libelle;
    }

    /**
     * Set libelle.
     *
     * @param string $libelle
     * @return Categorie
     * @return CategorieInterface
     */
    public function setLibelle(string $libelle) : Categorie
    public function setLibelle($libelle)
    {
        $this->libelle = $libelle;

        return $this;
    }

    /**
     * Get namespace.
     *
     * @return string
     */
    public function getNamespace() : ?string
    public function getNamespace()
    {
        return $this->namespace;
    }

    /**
     * Set namespace.
     *
     * @param string $namespace
     * @return Categorie
     * @return CategorieInterface
     */
    public function setNamespace(string $namespace) : Categorie
    public function setNamespace($namespace)
    {
        $this->namespace = $namespace;

        return $this;
    }

    /**
     * Get ordre.
     *
     * @return int
     */
    public function getOrdre() : ?int
    public function getOrdre()
    {
        return $this->ordre;
    }

    /**
     * Set ordre.
     *
     * @param int $ordre
     * @return Categorie
     * @return CategorieInterface
     */
    public function setOrdre(int $ordre) : Categorie
    public function setOrdre($ordre)
    {
        $this->ordre = $ordre;
        $this->ordre = (int)$ordre;

        return $this;
    }

    /**
     * @param Privilege $privilege
     * @return Categorie
     * Get privileges.
     *
     * @return Collection
     */
    public function addPrivilege(Privilege $privilege) : Categorie
    public function getPrivileges()
    {
        $this->privileges->add($privilege);
        return $this;
        return $this->privileges;
    }

    /**
     * Add privilege.
     *
     * @param Privilege $privilege
     * @return Categorie
     * @return CategorieInterface
     */
    public function removePrivilege(Privilege $privilege) : Categorie
    public function addPrivilege(Privilege $privilege)
    {
        $this->privileges->removeElement($privilege);
        $this->privileges->add($privilege);
        return $this;
    }

    /**
     * @return Privilege[]
     * Remove privilege.
     *
     * @param Privilege $privilege
     * @return CategorieInterface
     */
    public function getPrivilege() : array
    public function removePrivilege(Privilege $privilege)
    {
        return $this->privileges->toArray();
        $this->privileges->removeElement($privilege);
        return $this;
    }

    /**
     * Get privileges class name
     *
     * @return string
     */
    public function __toString() : string
    {
        return $this->getLibelle();
    }

    public function getClassname() : string
    public function getClassname()
    {
        return ucfirst(strtolower($this->getCode())) . "Privileges";
    }
+118 −0
Original line number Diff line number Diff line
<?php

namespace UnicaenPrivilege\Entity\Db;

use Doctrine\Common\Collections\Collection;

interface CategorieInterface
{
    /**
     * @return string
     */
    public function __toString();

    /**
     * Get id.
     *
     * @return integer
     */
    public function getId();

    /**
     * Set id.
     *
     * @param int $id
     * @return CategorieInterface
     */
    public function setId($id);

    /**
     * Get code.
     *
     * @return string
     */
    public function getCode();

    /**
     * Set code.
     *
     * @param string $code
     * @return CategorieInterface
     */
    public function setCode($code);

    /**
     * Get libelle.
     *
     * @return string
     */
    public function getLibelle();

    /**
     * Set libelle.
     *
     * @param string $libelle
     * @return CategorieInterface
     */
    public function setLibelle($libelle);

    /**
     * Get namespace.
     *
     * @return string
     */
    public function getNamespace();

    /**
     * Set namespace.
     *
     * @param string $namespace
     * @return CategorieInterface
     */
    public function setNamespace($namespace);

    /**
     * Get ordre.
     *
     * @return int
     */
    public function getOrdre();

    /**
     * Set ordre.
     *
     * @param int $ordre
     * @return CategorieInterface
     */
    public function setOrdre($ordre);

    /**
     * Get privileges.
     *
     * @return Collection
     */
    public function getPrivileges();

    /**
     * Add privilege.
     *
     * @param Privilege $privilege
     * @return CategorieInterface
     */
    public function addPrivilege(Privilege $privilege);

    /**
     * Remove privilege.
     *
     * @param Privilege $privilege
     * @return CategorieInterface
     */
    public function removePrivilege(Privilege $privilege);

    /**
     * Get privileges class name
     *
     * @return string
     */
    public function getClassname();
}
 No newline at end of file
+11 −8
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<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="UnicaenPrivilege\Entity\Db\Categorie" table="unicaen_privilege_categorie">
<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="UnicaenPrivilege\Entity\Db\Categorie" table="UNICAEN_PRIVILEGE_CATEGORIE">

        <id name="id" type="integer" column="id">
        <id name="id" type="integer" column="ID">
            <generator strategy="IDENTITY"/>
        </id>

        <field name="code" type="string" column="code" length="150" nullable="false"/>
        <field name="libelle" type="string" column="libelle" length="200" nullable="false"/>
        <field name="ordre" type="integer" column="ordre" nullable="false"/>
        <field name="namespace" type="string" column="namespace" length="256" nullable="true"/>
        <field name="code" type="string" column="CODE" length="150" nullable="false"/>
        <field name="libelle" type="string" column="LIBELLE" length="200" nullable="false"/>
        <field name="namespace" type="string" column="NAMESPACE" length="256" nullable="true"/>
        <field name="ordre" type="integer" column="ORDRE" nullable="false"/>

        <one-to-many field="privileges" target-entity="UnicaenPrivilege\Entity\Db\Privilege" mapped-by="categorie"/>

        <one-to-many target-entity="UnicaenPrivilege\Entity\Db\Privilege" mapped-by="categorie" field="privileges"/>
    </entity>
</doctrine-mapping>
+26 −22
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<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="UnicaenPrivilege\Entity\Db\Privilege" table="unicaen_privilege_privilege">
<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="UnicaenPrivilege\Entity\Db\Privilege" table="UNICAEN_PRIVILEGE_PRIVILEGE">

        <indexes>
            <index name="ix_privilege_categorie" columns="CATEGORIE_ID"/>
        </indexes>

        <unique-constraints>
            <unique-constraint name="un_privilege_code" columns="CODE"/>
        </unique-constraints>

        <id name="id" type="integer" column="id">
            <generator strategy="IDENTITY"/>
        </id>

    <field name="code" type="string" column="code" length="150" nullable="false"/>
    <field name="libelle" type="string" column="libelle" length="200" nullable="false"/>
    <field name="ordre" type="integer" column="ordre" nullable="false"/>
        <field name="code" type="string" column="CODE" length="150" nullable="false"/>
        <field name="libelle" type="string" column="LIBELLE" length="200" nullable="false"/>
        <field name="ordre" type="integer" column="ORDRE" nullable="false"/>

        <many-to-one target-entity="UnicaenPrivilege\Entity\Db\Categorie" field="categorie">
      <join-column name="categorie_id" referenced-column-name="id"/>
    </many-to-one>

    <many-to-many field="role" target-entity="UnicaenUtilisateur\Entity\Db\Role" inversed-by="privilege" fetch="LAZY">
      <join-table name="unicaen_privilege_privilege_role_linker">
            <join-columns>
          <join-column name="privilege_id" referenced-column-name="id"/>
                <join-column name="CATEGORIE_ID" referenced-column-name="ID"/>
            </join-columns>
        <inverse-join-columns>
          <join-column name="role_id" referenced-column-name="id"/>
        </inverse-join-columns>
      </join-table>
    </many-to-many>
        </many-to-one>

        <many-to-many field="roles" target-entity="UnicaenUtilisateur\Entity\Db\Role" mapped-by="privileges" fetch="LAZY"/>

    </entity>
</doctrine-mapping>
Loading