gestione assets
This commit is contained in:
+58
-5
@@ -8,6 +8,8 @@ declare(strict_types=1);
|
||||
* -------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
use Glpi\Asset\AssetDefinitionManager;
|
||||
use GlpiPlugin\Urbackup\Capacity\UrBackupCapacity;
|
||||
use GlpiPlugin\Urbackup\Config;
|
||||
use GlpiPlugin\Urbackup\Profile;
|
||||
|
||||
@@ -30,6 +32,10 @@ function plugin_urbackup_install_process(): bool
|
||||
|
||||
plugin_urbackup_install_update_configs_table($migration);
|
||||
plugin_urbackup_install_update_assettypes_table($migration);
|
||||
|
||||
// Convert old assettype configurations to GLPI 11 capacity system
|
||||
plugin_urbackup_install_convert_assettypes_to_capacities($migration);
|
||||
|
||||
plugin_urbackup_install_update_servers_table($migration);
|
||||
plugin_urbackup_install_update_serverassets_table($migration);
|
||||
plugin_urbackup_install_update_profiles_table($migration);
|
||||
@@ -153,11 +159,6 @@ function plugin_urbackup_install_update_assettypes_table(Migration $migration):
|
||||
'after' => 'itemtype',
|
||||
]);
|
||||
|
||||
$migration->addField($table, 'is_default', 'bool', [
|
||||
'value' => 0,
|
||||
'after' => 'is_active',
|
||||
]);
|
||||
|
||||
$migration->addField($table, 'date_creation', 'timestamp');
|
||||
$migration->addField($table, 'date_mod', 'timestamp');
|
||||
|
||||
@@ -338,3 +339,55 @@ function plugin_urbackup_install_update_profiles_table(Migration $migration): vo
|
||||
|
||||
$migration->addKey($table, ['profiles_id', 'rightname'], 'profile_right');
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert old glpi_plugin_urbackup_assettypes to GLPI 11 capacity system
|
||||
* and auto-enable UrBackup capacity on all existing Asset Definitions.
|
||||
*
|
||||
* After this migration, admins can disable UrBackup per Asset Definition
|
||||
* via the native Capacities UI (Config > Asset definitions > Capacities).
|
||||
*
|
||||
* @param Migration $migration Migration instance
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function plugin_urbackup_install_convert_assettypes_to_capacities(Migration $migration): void
|
||||
{
|
||||
global $DB;
|
||||
|
||||
$table = Config::getAssetTypesTable();
|
||||
if (!$DB->tableExists($table)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if is_default column exists
|
||||
$has_is_default = false;
|
||||
foreach ($DB->listFields($table) as $col) {
|
||||
if ($col['Field'] === 'is_default') {
|
||||
$has_is_default = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Auto-enable UrBackup capacity on ALL Asset Definitions
|
||||
// so the tab appears out of the box for any asset type.
|
||||
if (class_exists(AssetDefinitionManager::class)) {
|
||||
try {
|
||||
$manager = AssetDefinitionManager::getInstance();
|
||||
foreach ($manager->getDefinitions() as $definition) {
|
||||
if (!$definition->hasCapacity(UrBackupCapacity::class)) {
|
||||
$definition->enableCapacity(UrBackupCapacity::class);
|
||||
}
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
$migration->displayMessage(
|
||||
__('Error enabling UrBackup capacity on definitions: ', 'urbackup') . $e->getMessage()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Drop is_default column (no longer needed in capacity system)
|
||||
if ($has_is_default) {
|
||||
$migration->dropField($table, 'is_default');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user