src/PaaBundle/Entity/users.php line 35

Open in your IDE?
  1. <?php
  2. // src/PaaBundle/Entity/user.php
  3. // LG 20171214 pour FOSUserBundle
  4. namespace App\PaaBundle\Entity;
  5. use FOS\UserBundle\Model\User as BaseUser;
  6. use Doctrine\ORM\Mapping as ORM;
  7. /**
  8.  * @ORM\Entity
  9.  * @ORM\Table(name="Paa_Securite.Users")
  10.  * @ORM\Entity(repositoryClass="App\PaaBundle\Repository\usersRepository")      // LG 20230403
  11.  */
  12. /* Paa_Securite.Users est finalement une table, mais pourrait être une vue créée comme suit : 
  13.   Drop View If exists Paa_Securite.Users ;
  14.   Create Or Replace View Paa_Securite.Users As
  15.   SELECT t0.cInitiales AS username
  16.   , t0.cNomCourt AS username_canonical
  17.   , t0.cMel AS email
  18.   , t0.cMel AS email_canonical
  19.   , true AS enabled
  20.   , ''::Text AS salt
  21.   , t0.cmdp As password
  22.   , current_timestamp + '1 day'::interval As last_login
  23.   , ''::Text As confirmation_token
  24.   , current_timestamp - '1 day'::interval As password_requested_at
  25.   , 'a:0:{}'::Text As roles
  26.   , t0.iid_intervenant
  27.   FROM Paa.Intervenants t0
  28.   Where Not empty(iDroitsW) Or Not empty(iDroitsR) ;
  29.  */
  30. // LG 20240403 old class users extends BaseUser, pour que mon user soit une instanceof UserInterface, ce qui est testé dans vendor/friendsofsymfony/user-bundle/Controller/ProfileController.php, ligne 50
  31.  class users extends BaseUser implements \FOS\UserBundle\Model\UserInterface, \FOS\UserBundle\Model\GroupableInterface {
  32.     protected $entityManager ;
  33.     // Injecter le entityManager ici est une (TRES) mauvaise pratique, mais je ne trouve pas d'autre solution pour que les div générées par Form pour les clés étrangères ne deviennent pas des select qui incluent toutes les lignes de la table mère de la relation
  34.     function __construct($entityManager null) {
  35.         parent::__construct();
  36.         $this->entityManager $entityManager ;
  37.     }
  38.     function setEntityManager($entityManager){
  39.         $this->entityManager $entityManager ;
  40.     }
  41.         
  42.     /**
  43.      * @var integer
  44.      *
  45.      * @ORM\Column(name="iid_user", type="integer", nullable=false)
  46.      * @ORM\Id
  47.      * @ORM\GeneratedValue(strategy="SEQUENCE")
  48.      * @ORM\SequenceGenerator(sequenceName="Paa_Securite.users_iid_user_seq", allocationSize=1, initialValue=1)
  49.      */
  50.     protected $id;
  51.     public function setid($piId) {
  52.         return $this->setiid_user($piId);
  53.     }
  54.     public function setiid_user($piId) {
  55.         $this->id $piId;
  56.     }
  57.     public function setIidUser($piId) {
  58.         $this->id $piId;
  59.     }
  60.     public function getid() {
  61.         return $this->getiid_user();
  62.     }
  63.     public function getiid_user() {
  64.         return $this->id;
  65.     }
  66.     public function getIidUser() {
  67.         return $this->id;
  68.     }
  69.     /**
  70.      * @var string
  71.      *
  72.      * @ORM\Column(name="ctype_res", type="string", nullable=true)
  73.      */
  74.     protected $cType_Res;
  75.     public function setCtypeRes($ctype) {
  76.         $this->cType_Res $ctype;
  77.     }
  78.     public function getctype_res() {
  79.         return $this->getCtypeRes();
  80.     }
  81.     public function getCtypeRes() {
  82.         return $this->cType_Res;
  83.     }
  84.     /**
  85.      * @var integer
  86.      *
  87.      * @ORM\Column(name="iid_res", type="integer", nullable=true)
  88.      */
  89.     protected $iid_res;
  90.     public function setIidRes($id) {
  91.         $this->iid_res $id;
  92.     }
  93.     public function getiid_res() {
  94.         return $this->getIidRes();
  95.     }
  96.     public function getIidRes() {
  97.         return $this->iid_res;
  98.     }
  99.     public function getcRes() {
  100.         return $this->getctype_res() . $this->getIidRes();
  101.     }
  102.     protected $username;
  103.     public function setemail($mail) {
  104.         $this->email $mail;
  105.     }
  106.     public function getemail() {
  107.         return $this->email;
  108.     }
  109.     protected $password;
  110.     public function setPassword($password) {
  111.         parent::setPassword($password);
  112.     }
  113.     public function getpassword() {
  114.         return $this->password;
  115.     }
  116.     /**
  117.      * @var string
  118.      */
  119.     public $roles2;
  120.     /**
  121.      * @var bool
  122.      * 
  123.      * @ORM\Column(name="lpeutchangerprofil", type="boolean")
  124.      */
  125.     protected $lpeutchangerprofil;
  126.     public function isLPeutChangerProfil() {
  127.         return $this->lpeutchangerprofil;
  128.     }
  129.     // LG 20230913
  130.     public function getLPeutChangerProfil() {
  131.         return $this->isLPeutChangerProfil();
  132.     }
  133.     public function setLPeutChangerProfil($boolean) {
  134.         $this->lpeutchangerprofil = (bool) $boolean;
  135.         return $this;
  136.     }
  137.         
  138.     // Déterminer si l'user possède au moins l'un des rôles du tableau fourni
  139.     // LG 20210921
  140.     public function aUnDesRoles(array $paRoles) {
  141.         foreach ($paRoles as $lsRole) {
  142.             if ($this->hasRole($lsRole)) {
  143.                 return true ;
  144.             }
  145.         }
  146.         return false ;
  147.     }
  148.     // LG 20220822 : correction de la méthode de base qui se plante quand le user n'a pas de rôle 
  149.     /**
  150.      * {@inheritdoc}
  151.      */
  152.     public function addRole($role) {
  153.         $role strtoupper($role);
  154.         if ($role === static::ROLE_DEFAULT) {
  155.             return $this;
  156.         }
  157.         if (!$this->roles) {
  158.             // Il n'y a actuellement aucun rôle défini pour cette entité : initialiser un tableau vide pour les rôles
  159.             $this->roles = array();            
  160.         }
  161.         if (!in_array($role$this->rolestrue)) {
  162.             $this->roles[] = $role;
  163.         }
  164.         return $this;
  165.     }
  166.     /**
  167.      * {@inheritdoc}
  168.      */
  169.      
  170.     // LG 20220822 : correction de la méthode de base qui se plante quand le user n'a pas de rôle 
  171.     public function removeRole($role) {
  172.         if (!$this->roles) {
  173.             // Il n'y a actuellement aucun rôle défini pour cette entité : rien à faire
  174.             return $this;            
  175.         }
  176.         if (false !== $key array_search(strtoupper($role), $this->rolestrue)) {
  177.             unset($this->roles[$key]);
  178.             $this->roles array_values($this->roles);
  179.         }
  180.         return $this;
  181.     }
  182.     // LG 20230913
  183.     public function getEnabled() {
  184.         return $this->enabled ;
  185.     }
  186. }