Replaced the generation of the appointment hash with the use of CodeIgniter's random_string method, in order to avoid collisions (#986).

This commit is contained in:
Alex Tselegidis 2021-01-21 14:10:13 +01:00
parent 7c9137f69d
commit 120421b3af

View file

@ -24,6 +24,7 @@ class Appointments_model extends EA_Model {
{
parent::__construct();
$this->load->helper('data_validation');
$this->load->helper('string');
}
/**
@ -153,7 +154,7 @@ class Appointments_model extends EA_Model {
protected function insert($appointment)
{
$appointment['book_datetime'] = date('Y-m-d H:i:s');
$appointment['hash'] = $this->generate_hash();
$appointment['hash'] = random_string('alnum', 12);
if ( ! $this->db->insert('appointments', $appointment))
{
@ -163,20 +164,6 @@ class Appointments_model extends EA_Model {
return (int)$this->db->insert_id();
}
/**
* Generate a unique hash for the given appointment data.
*
* This method uses the current date-time to generate a unique hash string that is later used to identify this
* appointment. Hash is needed when the email is send to the user with an edit link.
*
* @return string Returns the unique appointment hash.
*/
public function generate_hash()
{
$current_date = new DateTime();
return md5($current_date->getTimestamp());
}
/**
* Update an existing appointment record in the database.
*