1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
| <?php
namespace App\Model\Entity;
use Cake\ORM\Entity;
use Cake\Auth\DefaultPasswordHasher;
/**
* User Entity.
*
* @property int $id
* @property string $username
* @property string $password
* @property string $name
* @property string $first_name
* @property string $email
* @property bool $status
* @property bool $first_connect
* @property int $profil_id
* @property \App\Model\Entity\Profile $profile
* @property \App\Model\Entity\Event[] $events
* @property \App\Model\Entity\Item[] $items
* @property \App\Model\Entity\News[] $news
* @property \App\Model\Entity\Theme[] $themes
*/
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,
];
protected function _setPassword($value)
{
$hasher = new DefaultPasswordHasher();
return $hasher->hash($value);
}
public $name = 'User';
public $validate = array(
'username' => array(
'alphanumeric' => array(
'rule' => 'alphanumeric',
'message' => 'L\'identifiant doit être composé de lettres uniquement.'
),
'isUnique' => array(
'rule' => 'isUnique',
'message' => 'Cet identifiant existe déjà.'
),
'required' => array(
'rule' => 'notBlank',
'message' => 'Un nom d\'utilisateur est requis.'
)
),
'password' => array(
'minLength' => array(
'rule' => array('minLength', '8'),
'message' => 'Le mot de passe doit être composé de 8 caractères minimum.'
),
'required' => array(
'rule' => 'notBlank',
'message' => 'Un mot de passe est requis.'
),
'identicalFieldValues' => array(
'rule' => array('identicalFieldValues', 'pass2'),
'message' => 'Les mots de passe ne sont pas identiques !'
)
),
'nom' => array(
'required' => array(
'rule' => 'notBlank',
'message' => 'Un nom de passe est requis.'
)
),
'prenom' => array(
'required' => array(
'rule' => 'notBlank',
'message' => 'Un prénom de passe est requis.'
)
),
'email' => array(
'required' => array(
'rule' => 'notBlank',
'message' => 'Un email de passe est requis.'
)
),
'statut' => array(
'required' => array(
'rule' => 'notBlank',
'message' => 'Un statut est requis.'
)
),
'profil' => array(
'valid' => array(
'rule' => array('inList', array('admin', 'DP', 'CP')),
'message' => 'Merci de rentrer un profil valide',
'allowEmpty' => false
),
'first_connect' => array(
'required' => array(
'rule' => 'notBlank',
'message' => 'Le first-connect est requis.'
)
)
));
function identicalFieldValues($fiels=array(), $compare_field=null)
{
foreach($field as $key => $value)
{
$v1 = $value;
$v2 = $this->data[$this->name][$compare_field];
if($v1 !== $v2)
{
return false;
}
else
{
continue;
}
}
return true;
}
} |
Partager