protected $beforeInsert = ['hashPassword','registerToken'];
protected $beforeUpdate = ['hashPassword','resetToken'];
protected $allowCallbacks = true;
protected $validationRules = [];
protected $validationMessages = [];
protected $skipValidation = true;
public function __construct()
{
parent::__construct();
helper('date');
$this->builder = $this->db->table($this->table);
$this->encrypter = Services::encrypter();
}
/**
* -----------------------------------------
* Hash Password
* -----------------------------------------
*
* Function Hash Password beforeInsert
* and beforeUpdate
*
* @param array $data Data Models
*/
protected function hashPassword(array $data): array
{
if (! isset($data['data']['user_password'])) {
return $data;
}
$data['data']['user_password'] = password_hash($data['data']['user_password'], PASSWORD_DEFAULT);
return $data;
}
/**
* -----------------------------------------
* Generate Token - Register
* -----------------------------------------
*
* Function Generate Token Register beforeInsert
*
* @param array $data Data Models
*/
protected function registerToken(array $data): array
{
if (! isset($data['data']['user_register_token'])) {
return $data;
}
$data['data']['user_register_token'] = $this->encrypter->encrypt($data['data']['user_register_token']);
return $data;
}
/**
* -----------------------------------------
* Generate Token - Reset
* -----------------------------------------
*
* Function Generate Token Reset
* beforeInsert
*
* @param array $data Data Models
*/
protected function resetToken(array $data): array
{
if (! isset($data['data']['user_reset_token'])) {
return $data;
}
$data['data']['user_reset_token'] = $this->encrypter->encrypt($data['data']['user_reset_token']);
return $data;
}