function password_hash($password, $algo = PASSWORD_DEFAULT, $options = array()) { $crypt = new Antnee\PhpPasswordLib\PhpPasswordLib(); $crypt->setAlgorithm($algo); $debug = isset($options['debug']) ? $options['debug'] : NULL; $password = $crypt->generateCryptPassword($password, $options, $debug); return $password; }
public function update() { global $app; // check for empty user email if (empty($this->email)) { $app->err->add($app->txt->tr('txt_empty_user_email')); return false; } // check for invalid user email if (!filter_var($this->email, FILTER_VALIDATE_EMAIL) || !$this->is_valid_user_email($this->email)) { $app->err->add($app->txt->tr('txt_invalid_user_email')); return false; } // check for invalid user password if (!empty($this->password)) { if (!$this->is_valid_user_password($this->password)) { $app->err->add($app->txt->tr('txt_invalid_user_password')); return false; } } // check for existing user email $sql = "SELECT count(*) FROM virtual_users WHERE id={$this->id}"; if ($app->db->select_first_value($sql) == 0) { $app->err->add($app->txt->tr('txt_non_existing_user_email')); return false; } // encrypt if (!empty($this->password)) { $crypt = new Antnee\PhpPasswordLib\PhpPasswordLib(); $crypt->setAlgorithm(PASSWORD_SHA256); $this->password = $crypt->generateCryptPassword($this->password, array('cost' => 10)); } // update user if (!empty($this->password)) { $sql = "UPDATE virtual_users SET email='{$this->email}',password='******' WHERE id={$this->id}"; } else { $sql = "UPDATE virtual_users SET email='{$this->email}' WHERE id={$this->id}"; } if ($app->db->update($sql) == 0) { return false; } // set administrator $sql = "DELETE FROM virtual_admins WHERE user_id={$this->id}"; $app->db->delete($sql); if ($this->is_admin) { $sql = "INSERT INTO virtual_admins (user_id) VALUES ({$this->id})"; $app->db->insert($sql); } return true; }