User.php 3.83 KB
<?php
namespace App\Model\Entity;

use Cake\ORM\Entity;
use Cake\Auth\DefaultPasswordHasher;

/**
 * User Entity.
 *
 * @property int $id
 * @property \Cake\I18n\Time $created
 * @property \Cake\I18n\Time $modified
 * @property string $nom
 * @property string $username
 * @property string $password
 * @property string $email
 * @property string $role
 * @property int $groupes_metier_id
 * @property int $groupe_thematique_id
 * @property int $sur_categorie_id
 * @property int $groupes_metier_id2
 * @property int $groupe_thematique_id2
 * @property int $sur_categorie_id2
 * @property \App\Model\Entity\GroupesMetier $groupes_metier
 * @property \App\Model\Entity\GroupesThematique $groupe_thematique
 * @property \App\Model\Entity\SurCategory $sur_categorie
 */
class User extends Entity
{

    /**
     * Fields that can be mass assigned using newEntity() or patchEntity().
     *
     * Note that when '*' is set to true, this allows all unspecified fields to
     * be mass assigned. For security purposes, it is advised to set '*' to false
     * (or remove it), and explicitly make individual fields accessible as needed.
     *
     * @var array
     */
    protected $_accessible = [
        '*' => true,
        'id' => false
    ];
    
    // Fonction de hachage de mot de passe (mutator/setter)
    /* CakePHP hashes passwords with bcrypt by default.
     * You can also use SHA-1 or MD5 if you’re working with an existing database, 
     * but we recommend bcrypt for all new applications
     */
    protected function _setPassword($password)
    {
        //return (new DefaultPasswordHasher())->hash($password);
        //if (strlen($password)) {
        if (strlen($password)>0) {
            $hasher = new DefaultPasswordHasher();
            return $hasher->hash($password);
        }
    }
    
    // Ce qui s'affiche quand on fait echo $entity
    public function __toString() { return $this->nom; }
    
    
    // (EP 20200504) - Champs virtuels

    // Nom Prénom
    //protected function _getFullname() { return $this->name.' '.$this->firstname; }
    
    // Champs virtuels $user->is_xxx
/*
    public function isUser() { return $this->role == 'Utilisateur'; }
    public function is_resp() { return $this->role == 'Responsable'; }
    public function is_admin() { return $this->role == 'Administration'; }
    public function is_super() { return $this->role == 'Super Administrateur'; }
    */
    protected function _getIsUser() { return $this->role == 'Utilisateur'; } //return $this->_fields['status'] == 'CREATED';
    protected function _getIsResp() { return $this->role == 'Responsable'; }
    protected function _getIsAdmin() { return $this->role == 'Administration'; }
    protected function _getIsAdminplus() { return $this->role == 'Administration Plus'; }
    protected function _getIsSuper() { return $this->role == 'Super Administrateur'; }
    
    
    // Champs virtuels $user->is_xxx_or_more 
    //public function isRespOrMore() {
    protected function _getIsRespOrMore() {
        return in_array($this->role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur']);
    }
    public function _getIsAdminOrMore() {
        return in_array($this->role, ['Administration', 'Administration Plus', 'Super Administrateur']);
    }
    public function _getIsAdminplusOrMore() {
        return in_array($this->role, ['Administration Plus', 'Super Administrateur']);
    }
    
    // Champs virtuels $user->is_xxx_or_less
    public function _getIsRespOrLess() {
        return in_array($this->role, ['Utilisateur', 'Responsable']);
    }
    public function _getIsAdminOrLess() {
        return in_array($this->role, ['Utilisateur', 'Responsable', 'Administration']);
    }
    public function _getIsAdminplusOrLess() {
        return in_array($this->role, ['Utilisateur', 'Responsable', 'Administration', 'Administration Plus']);
    }
    
    
}