setTable('users'); //$this->setDisplayField('id'); $this->setDisplayField('nom'); $this->setPrimaryKey('id'); $this->belongsTo('GroupesMetiers', [ 'foreignKey' => 'groupes_metier_id' ]); $this->belongsTo('GroupesThematiques', [ 'foreignKey' => 'groupes_thematique_id' ]); $this->belongsTo('SurCategories', [ 'foreignKey' => 'sur_categorie_id' ]); // So that 'created' and 'updated' fields are filled $this->addBehavior('Timestamp'); } /** * Default validation rules. * * @param \Cake\Validation\Validator $validator * Validator instance. * @return \Cake\Validation\Validator */ public function validationDefault(Validator $validator) { $validator->integer('id')->allowEmpty('id', 'create'); $validator->notEmpty('nom', 'Un nom est nécessaire')->add('nom', 'valid', [ 'rule' => [ 'check_string' ], 'message' => 'Le champ doit être valide.', 'provider' => 'table' ]); $validator->notEmpty('username', 'Un login est nécessaire') ->add('username', 'valid', [ 'rule' => [ 'check_string' ], 'message' => 'Le champ doit être valide.', 'provider' => 'table' ]) ->add('username', 'unique', [ 'rule' => 'validateUnique', 'provider' => 'table' ]); $validator->allowEmpty('password'); $configuration = TableRegistry::get('Configurations')->find() ->where([ 'id =' => 1 ]) ->first(); if ($configuration->ldap_used) { $validator->allowEmpty('email'); } else { $validator->email('email')->notEmpty('email', 'Un adresse mail est nécessaire'); } /* * $validator * ->notEmpty('role', 'Un rôle est nécessaire') * ->add('role', 'inList', [ * 'rule' => [ 'inList', ['Super Administrateur', 'Administration Plus', 'Administration', 'Responsable', 'Utilisateur']], * 'message' => 'Merci de rentrer un role valide' * ]); * */ return $validator; } /** * Returns a rules checker object that will be used for validating * application integrity. * * @param \Cake\ORM\RulesChecker $rules * The rules object to be modified. * @return \Cake\ORM\RulesChecker */ public function buildRules(RulesChecker $rules) { $rules->add($rules->isUnique([ 'username' ])); // $rules->add($rules->isUnique(['email'])); $rules->add($rules->existsIn([ 'groupes_metier_id' ], 'GroupesMetiers')); $rules->add($rules->existsIn( ['groupes_thematique_id'], 'GroupesThematiques' /* [ 'allowNullableNulls' => true, 'allowMultipleNulls' => false ] */ )); $rules->add($rules->existsIn([ 'sur_categorie_id' ], 'SurCategories')); return $rules; } function beforeSave($event, $entity, $options) { /* $entity = $event->getData('entity'); if ($entity->isNew()) { $hasher = new DefaultPasswordHasher(); ... } */ if (! empty($entity->get('newname')) && ! empty($entity->get('newgivenname'))) { $entity->set('nom', $entity->get('newname') . ' ' . $entity->get('newgivenname')); } return true; } }