mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-04-17 05:19:43 -04:00
- Merge Config and Core File Changes 4.6.3 > 4.6.4 - Merge Config and Core File Changes 4.6.4 > 4.7.0 - Added app\Config\WorkerMode.php - Merge Config and Core File Changes Not previously merged - Added app\Config\Hostnames.php - Corrected incorrect CSS property used in invoice.php view. - Corrected unknown CSS properties used in register.php view. - Used shorthand CSS in debug.css - Corrected indentation in barcode_sheet.php view. - Corrected indentation in footer.php view. - Corrected indentation in invoice_email.php view. - Replaced obsolete attributes with CSS style attributes in barcode_sheet.php - Replaced obsolete attribute in error_exception.php - Replaced obsolete attribute in invoice_email.php - Replaced obsolete attribute in quote_email.php - Replaced obsolete attributes in work_order_email.php - Fixed indentation in system_info.php - Replaced <strong> tag outside <p> tags, which isn't allowed, with style attributes. - Simplified js return logic and indentation fixes in tax_categories.php - Simplified js return logic in tax_codes.php - Simplified js return logic in tax_jurisdictions.php - Removed unnecessary labels in manage views. - Rewrite JavaScript function and PHP to be more readable in bar.php, hbar.php, line.php and pie.php - Added type declarations, return types and an import to app\Config\Services - Updated Attribute.php parameter type - Updated Receiving_lib.php parameter type - Updated Receivings.php parameter types and updated PHPdocs - Updated tabular_helper.php parameter types and updated PHPdocs - Added type declarations and corrected PHPdocs in url_helper.php - Added return types to functions - Revert $objectSrc value in ContentSecurityPolicy.php - Correct return type in Customer->get_stats() - Correct return type in Item->get_info_by_id_or_number() - Correct misspelling in border-spacing - Added missing css style semicolons - Resolve operator precedence ambiguity. - Resolve column mismatch. - Added missing escaping in view. - Updated requirement for PHP 8.2 - Resolve unresolved conflicts - Added PHP 8.2 requirement to the README.md - Fixed bugs in display of UI - Fixed duplicated `>` in app\Views\Expenses\manage.php - Removed excess whitespace at the end of some lines in table_filter_persistence.php - Added missing `>` in app\Views\Expenses\manage.php - Corrected grammar in PHPdoc in table_filter_persistence.php - Remove bug causing `\` to be injected into the new giftcard value - Fix bug causing DROPDOWN Attribute Values to not save correctly - Added check for null in $normalizedItemId - Removing < PHP 8.2 from linting and tests - Update Linter to not include PHP 8.2 and 8.1 - Remove PHP 8.1 unit test cycle. - Update Bug Report Template - Update Composer files for CodeIgniter 4.7.2 - Updated INSTALL.md to reflect changes. --------- Signed-off-by: objec <objecttothis@gmail.com>
149 lines
5.1 KiB
PHP
149 lines
5.1 KiB
PHP
<?php
|
|
|
|
namespace Config;
|
|
|
|
use CodeIgniter\Config\BaseConfig;
|
|
use CodeIgniter\Database\Exceptions\DatabaseException;
|
|
use CodeIgniter\Session\Handlers\BaseHandler;
|
|
use CodeIgniter\Session\Handlers\DatabaseHandler;
|
|
use CodeIgniter\Session\Handlers\FileHandler;
|
|
|
|
class Session extends BaseConfig
|
|
{
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Session Driver
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* The session storage driver to use:
|
|
* - `CodeIgniter\Session\Handlers\FileHandler`
|
|
* - `CodeIgniter\Session\Handlers\DatabaseHandler`
|
|
* - `CodeIgniter\Session\Handlers\MemcachedHandler`
|
|
* - `CodeIgniter\Session\Handlers\RedisHandler`
|
|
*
|
|
* @var class-string<BaseHandler>
|
|
*/
|
|
public string $driver = DatabaseHandler::class;
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Session Cookie Name
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* The session cookie name, must contain only [0-9a-z_-] characters
|
|
*/
|
|
public string $cookieName = 'ospos_session';
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Session Expiration
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* The number of SECONDS you want the session to last.
|
|
* Setting to 0 (zero) means expire when the browser is closed.
|
|
*/
|
|
public int $expiration = 7200;
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Session Save Path
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* The location to save sessions to and is driver dependent.
|
|
*
|
|
* For the 'files' driver, it's a path to a writable directory.
|
|
* WARNING: Only absolute paths are supported!
|
|
*
|
|
* For the 'database' driver, it's a table name.
|
|
* Please read up the manual for the format with other session drivers.
|
|
*
|
|
* IMPORTANT: You are REQUIRED to set a valid save path!
|
|
*/
|
|
public string $savePath = 'sessions';
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Session Match IP
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* Whether to match the user's IP address when reading the session data.
|
|
*
|
|
* WARNING: If you're using the database driver, don't forget to update
|
|
* your session table's PRIMARY KEY when changing this setting.
|
|
*/
|
|
public bool $matchIP = true;
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Session Time to Update
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* How many seconds between CI regenerating the session ID.
|
|
*/
|
|
public int $timeToUpdate = 300;
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Session Regenerate Destroy
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* Whether to destroy session data associated with the old session ID
|
|
* when auto-regenerating the session ID. When set to FALSE, the data
|
|
* will be later deleted by the garbage collector.
|
|
*/
|
|
public bool $regenerateDestroy = true;
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Session Database Group
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* DB Group for the database session.
|
|
*/
|
|
public ?string $DBGroup = null;
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Lock Retry Interval (microseconds)
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* This is used for RedisHandler.
|
|
*
|
|
* Time (microseconds) to wait if lock cannot be acquired.
|
|
* The default is 100,000 microseconds (= 0.1 seconds).
|
|
*/
|
|
public int $lockRetryInterval = 100_000;
|
|
|
|
/**
|
|
* --------------------------------------------------------------------------
|
|
* Lock Max Retries
|
|
* --------------------------------------------------------------------------
|
|
*
|
|
* This is used for RedisHandler.
|
|
*
|
|
* Maximum number of lock acquisition attempts.
|
|
* The default is 300 times. That is lock timeout is about 30 (0.1 * 300)
|
|
* seconds.
|
|
*/
|
|
public int $lockMaxRetries = 300;
|
|
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
|
|
if ($this->driver === DatabaseHandler::class) {
|
|
try {
|
|
$db = Database::connect();
|
|
|
|
if (!$db->tableExists($this->savePath)) {
|
|
$this->driver = FileHandler::class;
|
|
$this->savePath = WRITEPATH . 'session';
|
|
}
|
|
} catch (DatabaseException $e) {
|
|
$this->driver = FileHandler::class;
|
|
$this->savePath = WRITEPATH . 'session';
|
|
}
|
|
}
|
|
}
|
|
}
|