setTable('users'); $this->setDisplayField('id'); $this->setPrimaryKey('id'); $this->addBehavior('Timestamp'); $this->hasMany('EmailOptIn', [ 'foreignKey' => 'user_id', ]); $this->hasMany('UserBackups', [ 'foreignKey' => 'user_id', ]); $this->hasMany('UserRoles', [ 'foreignKey' => 'user_id', ]); } /** * Default validation rules. * * @param \Cake\Validation\Validator $validator Validator instance. * @return \Cake\Validation\Validator */ public function validationDefault(Validator $validator) { $validator ->integer('id') ->allowEmptyString('id', null, 'create'); $validator ->email('email') ->requirePresence('email', 'create') ->notEmptyString('email') ->add('email', 'unique', ['rule' => 'validateUnique', 'provider' => 'table']); $validator ->scalar('first_name') ->maxLength('first_name', 150) ->requirePresence('first_name', 'create') ->notEmptyString('first_name'); $validator ->scalar('last_name') ->maxLength('last_name', 255) ->allowEmptyString('last_name'); $validator ->requirePresence('password', 'create') ->notEmptyString('password'); $validator ->allowEmptyString('pubkey'); $validator ->allowEmptyString('privkey'); $validator ->boolean('email_checked') ->notEmptyString('email_checked'); $validator ->scalar('language') ->maxLength('language', 4) ->notEmptyString('language'); 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(['email'])); return $rules; } /** * Returns the database connection name to use by default. * * @return string */ public static function defaultConnectionName() { return 'loginServer'; } }