2020-06-19 00:42:10 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Model\Table;
|
|
|
|
|
|
|
|
use App\Model\Table\AppTable;
|
|
|
|
use Cake\ORM\Table;
|
|
|
|
use Cake\Validation\Validator;
|
2020-06-21 21:27:11 +02:00
|
|
|
use Cake\ORM\RulesChecker;
|
2020-06-19 00:42:10 +02:00
|
|
|
|
|
|
|
class UsersTable extends AppTable
|
|
|
|
{
|
|
|
|
public function initialize(array $config): void
|
|
|
|
{
|
|
|
|
parent::initialize($config);
|
|
|
|
$this->addBehavior('UUID');
|
|
|
|
$this->belongsTo(
|
|
|
|
'Individuals',
|
|
|
|
[
|
|
|
|
'dependent' => false,
|
|
|
|
'cascadeCallbacks' => false
|
|
|
|
]
|
|
|
|
);
|
|
|
|
$this->belongsTo(
|
|
|
|
'Roles',
|
|
|
|
[
|
|
|
|
'dependent' => false,
|
|
|
|
'cascadeCallbacks' => false
|
|
|
|
]
|
|
|
|
);
|
2020-06-21 21:27:11 +02:00
|
|
|
$this->setDisplayField('username');
|
2020-06-19 00:42:10 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function validationDefault(Validator $validator): Validator
|
|
|
|
{
|
|
|
|
$validator
|
|
|
|
->requirePresence(['password'], 'create');
|
|
|
|
return $validator;
|
|
|
|
}
|
2020-06-21 21:27:11 +02:00
|
|
|
|
|
|
|
public function buildRules(RulesChecker $rules): RulesChecker
|
|
|
|
{
|
|
|
|
return $rules;
|
|
|
|
}
|
2020-06-22 17:45:00 +02:00
|
|
|
|
|
|
|
public function checkForNewInstance(): bool
|
|
|
|
{
|
|
|
|
if (empty($this->find()->first())) {
|
|
|
|
$this->Roles = TableRegistry::get('Roles');
|
|
|
|
$role = $this->Roles->newEntity([
|
|
|
|
'name' => 'admin',
|
|
|
|
'perm_admin' => 1
|
|
|
|
]);
|
|
|
|
$this->Roles->save($role);
|
|
|
|
$roleId = $this->Roles->id;
|
|
|
|
$this->Individuals = TableRegistry::get('Individuals');
|
|
|
|
$individual = $this->Individual->newEntity([
|
|
|
|
'email' => 'admin@admin.test'
|
|
|
|
]);
|
|
|
|
$this->Individuals->save($individual);
|
|
|
|
$individualId = $this->Individuals->id;
|
|
|
|
$user = $this->newEntity([
|
|
|
|
'username' => 'admin',
|
|
|
|
'password' => 'Password1234',
|
|
|
|
'individual_id' => $individualId,
|
|
|
|
'role_id' => $roleId
|
|
|
|
]);
|
|
|
|
$this->save($user);
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
2020-06-19 00:42:10 +02:00
|
|
|
}
|