mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2025-12-30 21:17:55 -05:00
* Improve code style and PSR-12 compliance - refactored code formatting to adhere to PSR-12 guidelines - standardized coding conventions across the codebase - added missing framework files and reverted markup changes - reformatted arrays for enhanced readability - updated language files for consistent styling and clarity - minor miscellaneous improvements
122 lines
3.3 KiB
PHP
122 lines
3.3 KiB
PHP
<?php
|
|
|
|
use CodeIgniter\Encryption\Encryption;
|
|
use Config\Services;
|
|
|
|
/**
|
|
* @return bool
|
|
*/
|
|
function check_encryption(): bool
|
|
{
|
|
$old_key = config('Encryption')->key;
|
|
|
|
if ((empty($old_key)) || (strlen($old_key) < 64)) {
|
|
// Create Key
|
|
$encryption = new Encryption();
|
|
$key = bin2hex($encryption->createKey());
|
|
config('Encryption')->key = $key;
|
|
|
|
// Write to .env
|
|
$config_path = ROOTPATH . '.env';
|
|
$new_config_path = WRITEPATH . '/backup/.env';
|
|
$backup_path = WRITEPATH . '/backup/.env.bak';
|
|
|
|
$backup_folder = WRITEPATH . '/backup';
|
|
|
|
if (!file_exists($backup_folder) && !mkdir($backup_folder)) {
|
|
log_message('error', 'Could not create backup folder');
|
|
return false;
|
|
}
|
|
|
|
if (!copy($config_path, $backup_path)) {
|
|
log_message('error', "Unable to copy $config_path to $backup_path");
|
|
}
|
|
|
|
// Copy to backup
|
|
@chmod($config_path, 0660);
|
|
@chmod($backup_path, 0660);
|
|
|
|
$config_file = file_get_contents($config_path);
|
|
$config_file = preg_replace("/(encryption\.key.*=.*)('.*')/", "$1'$key'", $config_file);
|
|
|
|
if (!empty($old_key)) {
|
|
$old_line = "# encryption.key = '$old_key' REMOVE IF UNNEEDED\r\n";
|
|
$insertion_point = stripos($config_file, 'encryption.key');
|
|
$config_file = substr_replace($config_file, $old_line, $insertion_point, 0);
|
|
}
|
|
|
|
$handle = @fopen($config_path, 'w+');
|
|
|
|
if (empty($handle)) {
|
|
log_message('error', "Unable to open $config_path for updating");
|
|
return false;
|
|
}
|
|
|
|
@chmod($config_path, 0660);
|
|
$write_failed = !fwrite($handle, $config_file);
|
|
fclose($handle);
|
|
|
|
if ($write_failed) {
|
|
log_message('error', "Unable to write to $config_path for updating.");
|
|
return false;
|
|
}
|
|
log_message('info', "File $config_path has been updated.");
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* @return void
|
|
*/
|
|
function abort_encryption_conversion(): void
|
|
{
|
|
$config_path = ROOTPATH . '.env';
|
|
$backup_path = WRITEPATH . '/backup/.env.bak';
|
|
|
|
$config_file = file_get_contents($backup_path);
|
|
|
|
$handle = @fopen($config_path, 'w+');
|
|
|
|
if (empty($handle)) {
|
|
log_message('error', "Unable to open $config_path to undo encryption conversion");
|
|
} else {
|
|
@chmod($config_path, 0660);
|
|
$write_failed = !fwrite($handle, $config_file);
|
|
fclose($handle);
|
|
|
|
if ($write_failed) {
|
|
log_message('error', "Unable to write to $config_path to undo encryption conversion.");
|
|
return;
|
|
}
|
|
log_message('info', "File $config_path has been updated to undo encryption conversion");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @return void
|
|
*/
|
|
function remove_backup(): void
|
|
{
|
|
$backup_path = WRITEPATH . '/backup/.env.bak';
|
|
if (! file_exists($backup_path)) {
|
|
return;
|
|
}
|
|
if (!unlink($backup_path)) {
|
|
log_message('error', "Unable to remove $backup_path.");
|
|
return;
|
|
}
|
|
log_message('info', "File $backup_path has been removed");
|
|
}
|
|
|
|
function purifyHtml($data)
|
|
{
|
|
if (is_array($data)) {
|
|
return array_map('purifyHtml', $data);
|
|
} elseif (is_string($data)) {
|
|
return Services::HtmlPurifier()->purify($data);
|
|
}
|
|
|
|
return $data;
|
|
}
|