2020-05-29 13:41:58 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Model\Table;
|
|
|
|
|
|
|
|
use App\Model\Table\AppTable;
|
|
|
|
use Cake\ORM\Table;
|
|
|
|
use Cake\Validation\Validator;
|
|
|
|
|
|
|
|
class IndividualsTable extends AppTable
|
|
|
|
{
|
2020-11-20 11:49:31 +01:00
|
|
|
public $metaFields = 'individual';
|
|
|
|
|
2020-05-29 13:41:58 +02:00
|
|
|
public function initialize(array $config): void
|
|
|
|
{
|
|
|
|
parent::initialize($config);
|
2020-06-19 00:39:29 +02:00
|
|
|
$this->addBehavior('UUID');
|
2020-06-04 10:05:45 +02:00
|
|
|
$this->hasMany(
|
|
|
|
'Alignments',
|
|
|
|
[
|
|
|
|
'dependent' => true,
|
|
|
|
'cascadeCallbacks' => true
|
|
|
|
]
|
|
|
|
);
|
2020-05-29 13:41:58 +02:00
|
|
|
$this->hasMany(
|
|
|
|
'EncryptionKeys',
|
|
|
|
[
|
|
|
|
'foreignKey' => 'owner_id',
|
|
|
|
'conditions' => ['owner_type' => 'individual']
|
|
|
|
]
|
|
|
|
);
|
2020-06-19 00:39:29 +02:00
|
|
|
$this->hasOne(
|
|
|
|
'Users'
|
|
|
|
);
|
|
|
|
$this->belongsToMany('Organisations', [
|
|
|
|
'through' => 'Alignments',
|
|
|
|
]);
|
2020-06-04 10:05:45 +02:00
|
|
|
$this->setDisplayField('email');
|
2020-05-29 13:41:58 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function validationDefault(Validator $validator): Validator
|
|
|
|
{
|
|
|
|
$validator
|
|
|
|
->notEmptyString('email')
|
2020-06-19 00:39:29 +02:00
|
|
|
->requirePresence(['email'], 'create');
|
2020-05-29 13:41:58 +02:00
|
|
|
return $validator;
|
|
|
|
}
|
|
|
|
}
|