From bae8b16c27fa3697718c0e0ab8baf3da36ad524d Mon Sep 17 00:00:00 2001 From: Jozef Rebjak Date: Mon, 24 Feb 2025 12:18:44 +0100 Subject: [PATCH] feat: add customizable database connection settings for FreeRadius configuration --- src/Config/FreeRadius.php | 32 +++++++++++++++++++ ...2024-01-21-223112_create_radius_tables.php | 11 ++----- src/Models/BaseModel.php | 19 +++-------- 3 files changed, 40 insertions(+), 22 deletions(-) diff --git a/src/Config/FreeRadius.php b/src/Config/FreeRadius.php index 31820a9..51f76e7 100644 --- a/src/Config/FreeRadius.php +++ b/src/Config/FreeRadius.php @@ -17,6 +17,38 @@ class FreeRadius extends BaseConfig */ public ?string $DBGroup = 'radius'; + /** + * -------------------------------------------------------------------- + * Customize the DB connection settings + * -------------------------------------------------------------------- + */ + public array $database = [ + 'DSN' => '', + 'hostname' => 'localhost', + 'username' => 'radius', + 'password' => 'radius', + 'database' => 'radius', + 'DBDriver' => 'MySQLi', + 'DBPrefix' => '', + 'pConnect' => false, + 'DBDebug' => true, + 'charset' => 'utf8mb4', + 'DBCollat' => 'utf8mb4_general_ci', + 'swapPre' => '', + 'encrypt' => false, + 'compress' => false, + 'strictOn' => false, + 'failover' => [], + 'port' => 3306, + 'numberNative' => false, + 'foundRows' => false, + 'dateFormat' => [ + 'date' => 'Y-m-d', + 'datetime' => 'Y-m-d H:i:s', + 'time' => 'H:i:s', + ], + ]; + /** * -------------------------------------------------------------------- * Customize Name of FreeRadius Tables diff --git a/src/Database/Migrations/2024-01-21-223112_create_radius_tables.php b/src/Database/Migrations/2024-01-21-223112_create_radius_tables.php index c9fcd11..c8007db 100644 --- a/src/Database/Migrations/2024-01-21-223112_create_radius_tables.php +++ b/src/Database/Migrations/2024-01-21-223112_create_radius_tables.php @@ -7,7 +7,6 @@ use CodeIgniter\Database\Forge; use CodeIgniter\Database\Migration; use CodeIgniter\Database\RawSql; -use IctSolutions\CodeIgniterFreeRadius\Config\FreeRadius; class CreateRadiusTables extends Migration { @@ -16,16 +15,12 @@ class CreateRadiusTables extends Migration public function __construct(?Forge $forge = null) { - /** @var FreeRadius $freeRadiusConfig */ - $freeRadiusConfig = config('FreeRadius'); - - if ($freeRadiusConfig->DBGroup !== null) { - $this->DBGroup = $freeRadiusConfig->DBGroup; - } + $this->DBGroup = setting('FreeRadius.DBGroup'); + $this->tables = setting('FreeRadius.tables'); + $this->db = db_connect(setting('FreeRadius.database')); parent::__construct($forge); - $this->tables = $freeRadiusConfig->tables; $this->attributes = ($this->db->getPlatform() === 'MySQLi') ? ['ENGINE' => 'InnoDB'] : []; } diff --git a/src/Models/BaseModel.php b/src/Models/BaseModel.php index df9631c..de7ee74 100644 --- a/src/Models/BaseModel.php +++ b/src/Models/BaseModel.php @@ -5,26 +5,17 @@ namespace IctSolutions\CodeIgniterFreeRadius\Models; use CodeIgniter\Model; -use IctSolutions\CodeIgniterFreeRadius\Config\FreeRadius; class BaseModel extends Model { - protected array $tables; - protected FreeRadius $freeRadiusConfig; + protected array $tables = []; + protected $db; public function __construct() { - $this->freeRadiusConfig = config(FreeRadius::class); - - if ($this->freeRadiusConfig->DBGroup !== null) { - $this->DBGroup = $this->freeRadiusConfig->DBGroup; - } - + $this->tables = setting('FreeRadius.tables'); + $this->DBGroup = setting('FreeRadius.DBGroup'); + $this->db = db_connect(setting('FreeRadius.database')); parent::__construct(); } - - protected function initialize(): void - { - $this->tables = $this->freeRadiusConfig->tables; - } }