table('users'); $this->displayField('id'); $this->primaryKey('id'); $this->belongsTo('GroupesMetiers', [ 'foreignKey' => 'groupes_metier_id' ]); $this->belongsTo('GroupesThematiques', [ 'foreignKey' => 'groupe_thematique_id' ]); } /** * 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->use_ldap) { $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(['groupe_thematique_id'], 'GroupesThematiques')); return $rules; } function beforeSave($event, $entity, $options) { if (!empty($entity->get('newname')) && !empty($entity->get('newgivenname'))) { $entity->set('nom', $entity->get('newname').' '.$entity->get('newgivenname')); } return true; } }