gestione assets

This commit is contained in:
mariano
2026-05-22 08:29:59 +02:00
parent f7c1ab8aa4
commit 13cb325576
11 changed files with 391 additions and 627 deletions
+58 -5
View File
@@ -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');
}
}