89 lines
3.5 KiB
PHP
Executable File
89 lines
3.5 KiB
PHP
Executable File
<?php
|
|
|
|
use Illuminate\Database\Capsule\Manager as Capsule;
|
|
use App\Models\Module;
|
|
use Modules\Company\Models\Company;
|
|
|
|
class InsertAuthModule
|
|
{
|
|
public function up()
|
|
{
|
|
$moduleData = [
|
|
'modules_name' => 'auth',
|
|
'modules_display_name' => 'Authentication',
|
|
'modules_description' => 'Authentication and authorization module for user management',
|
|
'modules_version' => '1.0.0',
|
|
'modules_author' => 'SysCMS Team',
|
|
'modules_ative' => true,
|
|
'modules_public' => true,
|
|
'modules_blocked' => true, // Core module, cannot be disabled easily
|
|
'modules_dependencies' => [],
|
|
'modules_permissions' => [
|
|
"auth.login",
|
|
"auth.logout",
|
|
"auth.register",
|
|
"auth.profile",
|
|
"auth.password.reset",
|
|
"auth.password.change"
|
|
],
|
|
'modules_settings' => [
|
|
"allow_registration" => true,
|
|
"require_email_verification" => false,
|
|
"password_min_length" => 8,
|
|
"session_timeout" => 120
|
|
],
|
|
'modules_path' => 'modules/auth',
|
|
'modules_namespace' => 'Modules\\Auth',
|
|
'modules_icon' => 'bi bi-person-check',
|
|
'menu_side_bar' => true,
|
|
'menu_nav_bar' => true,
|
|
'modules_order' => 1,
|
|
'modules_install_date' => date('Y-m-d H:i:s'),
|
|
'modules_update_date' => date('Y-m-d H:i:s')
|
|
];
|
|
|
|
// Check if module already exists
|
|
$existingModule = Module::where('modules_name', 'auth')->first();
|
|
|
|
if (!$existingModule) {
|
|
$module = Module::create($moduleData);
|
|
|
|
// Associate with all existing companies (bus_modules)
|
|
// Assuming Company model and table exist.
|
|
if (Capsule::schema()->hasTable('bus')) {
|
|
$companies = Company::all();
|
|
foreach ($companies as $company) {
|
|
$exists = Capsule::table('bus_modules')
|
|
->where('bus_modules_bus_id', $company->bus_id)
|
|
->where('bus_modules_module_id', $module->modules_id)
|
|
->exists();
|
|
|
|
if (!$exists) {
|
|
Capsule::table('bus_modules')->insert([
|
|
'bus_modules_bus_id' => $company->bus_id,
|
|
'bus_modules_module_id' => $module->modules_id,
|
|
'bus_modules_is_enabled' => true,
|
|
'bus_modules_settings' => json_encode([]),
|
|
'bus_modules_enabled_by' => 1,
|
|
'bus_modules_enabled_at' => date('Y-m-d H:i:s'),
|
|
'bus_modules_show_public_nav' => true,
|
|
'bus_modules_show_dashboard_nav' => true,
|
|
'created_at' => date('Y-m-d H:i:s'),
|
|
'updated_at' => date('Y-m-d H:i:s')
|
|
]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public function down()
|
|
{
|
|
$module = Module::where('modules_name', 'auth')->first();
|
|
if ($module) {
|
|
Capsule::table('bus_modules')->where('bus_modules_module_id', $module->modules_id)->delete();
|
|
$module->delete();
|
|
}
|
|
}
|
|
}
|