Skip to content

Commit

Permalink
Mutualize configurations and harmonize fields
Browse files Browse the repository at this point in the history
  • Loading branch information
cedric-anne committed May 6, 2024
1 parent 2c57c93 commit e25d7ba
Show file tree
Hide file tree
Showing 8 changed files with 147 additions and 71 deletions.
23 changes: 6 additions & 17 deletions inc/define.php
Original file line number Diff line number Diff line change
Expand Up @@ -259,25 +259,14 @@
'Peripheral', 'Phone', 'Printer', 'Software', 'Rack'
];

$CFG_GLPI["linkuser_types"] = ['Computer', 'Monitor', 'NetworkEquipment',
// FIXME: Merge these configurations
$CFG_GLPI["linkuser_types"] = ['Computer', 'CartridgeItem', 'ConsumableItem', 'Monitor', 'NetworkEquipment',
'Peripheral', 'Phone', 'Printer', 'Software',
'SoftwareLicense', 'Certificate', 'Appliance', 'Item_DeviceSimcard', 'Line'
];

$CFG_GLPI["linkgroup_types"] = ['Computer', 'Monitor', 'NetworkEquipment',
'Peripheral', 'Phone', 'Printer', 'Software',
'SoftwareLicense', 'Certificate', 'Appliance', 'Item_DeviceSimcard', 'Line'
];

$CFG_GLPI["linkuser_tech_types"] = ['Computer', 'ConsumableItem', 'Monitor', 'NetworkEquipment',
'Peripheral', 'Phone', 'Printer', 'Software',
'SoftwareLicense', 'Certificate', 'Appliance', 'DatabaseInstance'
];

$CFG_GLPI["linkgroup_tech_types"] = ['Computer', 'ConsumableItem', 'Monitor', 'NetworkEquipment',
'Peripheral', 'Phone', 'Printer', 'Software',
'SoftwareLicense', 'Certificate', 'Appliance', 'DatabaseInstance'
'SoftwareLicense', 'Certificate', 'Appliance', 'DatabaseInstance', 'Item_DeviceSimcard', 'Line'
];
$CFG_GLPI["linkgroup_types"] = $CFG_GLPI["linkuser_types"];
$CFG_GLPI["linkuser_tech_types"] = $CFG_GLPI["linkuser_types"];
$CFG_GLPI["linkgroup_tech_types"] = $CFG_GLPI["linkuser_types"];

$CFG_GLPI["location_types"] = ['Budget', 'CartridgeItem', 'ConsumableItem',
'Computer', 'Monitor', "Glpi\\Socket",
Expand Down
50 changes: 40 additions & 10 deletions inc/relation.constant.php
Original file line number Diff line number Diff line change
Expand Up @@ -722,7 +722,10 @@
'groups_id_tech',
'groups_id',
],
'glpi_cartridgeitems' => 'groups_id_tech',
'glpi_cartridgeitems' => [
'groups_id_tech',
'groups_id',
],
'glpi_certificates' => [
'groups_id_tech',
'groups_id',
Expand All @@ -734,8 +737,14 @@
'groups_id_tech',
'groups_id',
],
'glpi_consumableitems' => 'groups_id_tech',
'glpi_databaseinstances' => 'groups_id_tech',
'glpi_consumableitems' => [
'groups_id_tech',
'groups_id',
],
'glpi_databaseinstances' => [
'groups_id_tech',
'groups_id',
],
'glpi_domains' => 'groups_id_tech',
'glpi_domainrecords' => 'groups_id_tech',
'glpi_enclosures' => 'groups_id_tech',
Expand All @@ -746,9 +755,15 @@
'_glpi_groups_rssfeeds' => 'groups_id',
'_glpi_groups_tickets' => 'groups_id',
'_glpi_groups_users' => 'groups_id',
'glpi_items_devicesimcards' => 'groups_id',
'glpi_items_devicesimcards' => [
'groups_id_tech',
'groups_id',
],
'glpi_itilcategories' => 'groups_id',
'glpi_lines' => 'groups_id',
'glpi_lines' => [
'groups_id_tech',
'groups_id',
],
'glpi_monitors' => [
'groups_id_tech',
'groups_id',
Expand Down Expand Up @@ -1524,7 +1539,10 @@
'users_id',
],
'glpi_cables' => 'users_id_tech',
'glpi_cartridgeitems' => 'users_id_tech',
'glpi_cartridgeitems' => [
'users_id_tech',
'users_id',
],
'glpi_certificates' => [
'users_id_tech',
'users_id',
Expand All @@ -1548,10 +1566,16 @@
'users_id_tech',
'users_id',
],
'glpi_consumableitems' => 'users_id_tech',
'glpi_consumableitems' => [
'users_id_tech',
'users_id',
],
'_glpi_dashboards_dashboards' => 'users_id',
'glpi_dashboards_filters' => 'users_id',
'glpi_databaseinstances' => 'users_id_tech',
'glpi_databaseinstances' => [
'users_id_tech',
'users_id',
],
'_glpi_displaypreferences' => 'users_id',
'glpi_domains' => 'users_id_tech',
'glpi_domainrecords' => 'users_id_tech',
Expand All @@ -1560,7 +1584,10 @@
'glpi_enclosures' => 'users_id_tech',
'glpi_forms_answerssets' => 'users_id',
'_glpi_groups_users' => 'users_id',
'glpi_items_devicesimcards' => 'users_id',
'glpi_items_devicesimcards' => [
'users_id_tech',
'users_id',
],
'_glpi_items_kanbans' => 'users_id',
'glpi_itilcategories' => 'users_id',
'glpi_itilfollowups' => [
Expand All @@ -1577,7 +1604,10 @@
'glpi_knowbaseitems_revisions' => 'users_id',
'_glpi_knowbaseitems_users' => 'users_id',
'glpi_knowbaseitemtranslations' => 'users_id',
'glpi_lines' => 'users_id',
'glpi_lines' => [
'users_id_tech',
'users_id',
],
'glpi_monitors' => [
'users_id_tech',
'users_id',
Expand Down
33 changes: 29 additions & 4 deletions install/migrations/update_10.0.x_to_11.0.0/assets.php
Original file line number Diff line number Diff line change
Expand Up @@ -213,15 +213,40 @@
}
}

// Add missing fields on assignable items
$migration->addField('glpi_cartridgeitems', 'users_id', 'fkey');
$migration->addKey('glpi_cartridgeitems', 'users_id');
$migration->addField('glpi_cartridgeitems', 'groups_id', 'fkey');
$migration->addKey('glpi_cartridgeitems', 'groups_id');

$migration->addField('glpi_consumableitems', 'users_id', 'fkey');
$migration->addKey('glpi_consumableitems', 'users_id');
$migration->addField('glpi_consumableitems', 'groups_id', 'fkey');
$migration->addKey('glpi_consumableitems', 'groups_id');

$migration->addField('glpi_databaseinstances', 'users_id', 'fkey');
$migration->addKey('glpi_databaseinstances', 'users_id');
$migration->addField('glpi_databaseinstances', 'groups_id', 'fkey');
$migration->addKey('glpi_databaseinstances', 'groups_id');

$migration->addField('glpi_items_devicesimcards', 'users_id_tech', 'fkey');
$migration->addKey('glpi_items_devicesimcards', 'users_id_tech');
$migration->addField('glpi_items_devicesimcards', 'groups_id_tech', 'fkey');
$migration->addKey('glpi_items_devicesimcards', 'groups_id_tech');

$migration->addField('glpi_lines', 'users_id_tech', 'fkey');
$migration->addKey('glpi_lines', 'users_id_tech');
$migration->addField('glpi_lines', 'groups_id_tech', 'fkey');
$migration->addKey('glpi_lines', 'groups_id_tech');

// Add assignable assets rights
$assignable_asset_rights = [
'computer', 'monitor', 'software', 'networking', 'printer',
'cartridge', 'consumable', 'phone', 'peripheral'
];
foreach ($assignable_asset_rights as $rightname) {
$migration->addRight($rightname, READ_ASSIGNED, [$rightname => READ]);
$migration->addRight($rightname, UPDATE_ASSIGNED, [$rightname => UPDATE]);
if ($rightname !== 'cartdrige' && $rightname !== 'consumable') {
$migration->addRight($rightname, READ_OWNED, [$rightname => READ]);
$migration->addRight($rightname, UPDATE_OWNED, [$rightname => UPDATE]);
}
$migration->addRight($rightname, READ_OWNED, [$rightname => READ]);
$migration->addRight($rightname, UPDATE_OWNED, [$rightname => UPDATE]);
}
22 changes: 21 additions & 1 deletion install/mysql/glpi-empty.sql
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,9 @@ CREATE TABLE `glpi_cartridgeitems` (
`locations_id` int unsigned NOT NULL DEFAULT '0',
`cartridgeitemtypes_id` int unsigned NOT NULL DEFAULT '0',
`manufacturers_id` int unsigned NOT NULL DEFAULT '0',
`users_id` int unsigned NOT NULL DEFAULT '0',
`users_id_tech` int unsigned NOT NULL DEFAULT '0',
`groups_id` int unsigned NOT NULL DEFAULT '0',
`groups_id_tech` int unsigned NOT NULL DEFAULT '0',
`is_deleted` tinyint NOT NULL DEFAULT '0',
`comment` text,
Expand All @@ -448,10 +450,12 @@ CREATE TABLE `glpi_cartridgeitems` (
KEY `is_recursive` (`is_recursive`),
KEY `manufacturers_id` (`manufacturers_id`),
KEY `locations_id` (`locations_id`),
KEY `users_id` (`users_id`),
KEY `users_id_tech` (`users_id_tech`),
KEY `cartridgeitemtypes_id` (`cartridgeitemtypes_id`),
KEY `is_deleted` (`is_deleted`),
KEY `alarm_threshold` (`alarm_threshold`),
KEY `groups_id` (`groups_id`),
KEY `groups_id_tech` (`groups_id_tech`),
KEY `date_mod` (`date_mod`),
KEY `date_creation` (`date_creation`)
Expand Down Expand Up @@ -1321,7 +1325,9 @@ CREATE TABLE `glpi_consumableitems` (
`locations_id` int unsigned NOT NULL DEFAULT '0',
`consumableitemtypes_id` int unsigned NOT NULL DEFAULT '0',
`manufacturers_id` int unsigned NOT NULL DEFAULT '0',
`users_id` int unsigned NOT NULL DEFAULT '0',
`users_id_tech` int unsigned NOT NULL DEFAULT '0',
`groups_id` int unsigned NOT NULL DEFAULT '0',
`groups_id_tech` int unsigned NOT NULL DEFAULT '0',
`is_deleted` tinyint NOT NULL DEFAULT '0',
`comment` text,
Expand All @@ -1337,10 +1343,12 @@ CREATE TABLE `glpi_consumableitems` (
KEY `is_recursive` (`is_recursive`),
KEY `manufacturers_id` (`manufacturers_id`),
KEY `locations_id` (`locations_id`),
KEY `users_id` (`users_id`),
KEY `users_id_tech` (`users_id_tech`),
KEY `consumableitemtypes_id` (`consumableitemtypes_id`),
KEY `is_deleted` (`is_deleted`),
KEY `alarm_threshold` (`alarm_threshold`),
KEY `groups_id` (`groups_id`),
KEY `groups_id_tech` (`groups_id_tech`),
KEY `date_mod` (`date_mod`),
KEY `date_creation` (`date_creation`),
Expand Down Expand Up @@ -2463,7 +2471,9 @@ CREATE TABLE `glpi_items_devicesimcards` (
`locations_id` int unsigned NOT NULL DEFAULT '0',
`lines_id` int unsigned NOT NULL DEFAULT '0',
`users_id` int unsigned NOT NULL DEFAULT '0',
`users_id_tech` int unsigned NOT NULL DEFAULT '0',
`groups_id` int unsigned NOT NULL DEFAULT '0',
`groups_id_tech` int unsigned NOT NULL DEFAULT '0',
`pin` varchar(255) NOT NULL DEFAULT '',
`pin2` varchar(255) NOT NULL DEFAULT '',
`puk` varchar(255) NOT NULL DEFAULT '',
Expand All @@ -2483,7 +2493,9 @@ CREATE TABLE `glpi_items_devicesimcards` (
KEY `locations_id` (`locations_id`),
KEY `lines_id` (`lines_id`),
KEY `users_id` (`users_id`),
KEY `groups_id` (`groups_id`)
KEY `users_id_tech` (`users_id_tech`),
KEY `groups_id` (`groups_id`),
KEY `groups_id_tech` (`groups_id_tech`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;


Expand Down Expand Up @@ -4097,7 +4109,9 @@ CREATE TABLE `glpi_lines` (
`caller_num` varchar(255) NOT NULL DEFAULT '',
`caller_name` varchar(255) NOT NULL DEFAULT '',
`users_id` int unsigned NOT NULL DEFAULT '0',
`users_id_tech` int unsigned NOT NULL DEFAULT '0',
`groups_id` int unsigned NOT NULL DEFAULT '0',
`groups_id_tech` int unsigned NOT NULL DEFAULT '0',
`lineoperators_id` int unsigned NOT NULL DEFAULT '0',
`locations_id` int unsigned NOT NULL DEFAULT '0',
`states_id` int unsigned NOT NULL DEFAULT '0',
Expand All @@ -4111,8 +4125,10 @@ CREATE TABLE `glpi_lines` (
KEY `is_recursive` (`is_recursive`),
KEY `is_deleted` (`is_deleted`),
KEY `users_id` (`users_id`),
KEY `users_id_tech` (`users_id_tech`),
KEY `lineoperators_id` (`lineoperators_id`),
KEY `groups_id` (`groups_id`),
KEY `groups_id_tech` (`groups_id_tech`),
KEY `linetypes_id` (`linetypes_id`),
KEY `locations_id` (`locations_id`),
KEY `states_id` (`states_id`),
Expand Down Expand Up @@ -9362,7 +9378,9 @@ CREATE TABLE `glpi_databaseinstances` (
`databaseinstancecategories_id` int unsigned NOT NULL DEFAULT '0',
`locations_id` int unsigned NOT NULL DEFAULT '0',
`manufacturers_id` int unsigned NOT NULL DEFAULT '0',
`users_id` int unsigned NOT NULL DEFAULT '0',
`users_id_tech` int unsigned NOT NULL DEFAULT '0',
`groups_id` int unsigned NOT NULL DEFAULT '0',
`groups_id_tech` int unsigned NOT NULL DEFAULT '0',
`states_id` int unsigned NOT NULL DEFAULT '0',
`itemtype` varchar(100) NOT NULL DEFAULT '',
Expand All @@ -9386,7 +9404,9 @@ CREATE TABLE `glpi_databaseinstances` (
KEY `databaseinstancecategories_id` (`databaseinstancecategories_id`),
KEY `locations_id` (`locations_id`),
KEY `manufacturers_id` (`manufacturers_id`),
KEY `users_id` (`users_id`),
KEY `users_id_tech` (`users_id_tech`),
KEY `groups_id` (`groups_id`),
KEY `groups_id_tech` (`groups_id_tech`),
KEY `states_id` (`states_id`),
KEY `item` (`itemtype`,`items_id`),
Expand Down
16 changes: 16 additions & 0 deletions src/Item_DeviceSimcard.php
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,22 @@ public static function getSpecificities($specif = '')
'id' => 22,
'datatype' => 'dropdown'
],
'users_id_tech' => [
'long name' => __('Technician in charge'),
'short name' => __('Technician in charge'),
'size' => 20,
'id' => 23,
'datatype' => 'dropdown',
'dropdown_options' => ['right' => 'own_ticket']
],
'groups_id_tech' => [
'long name' => __('Group in charge'),
'short name' => __('Group in charge'),
'size' => 20,
'id' => 24,
'datatype' => 'dropdown',
'dropdown_options' => ['condition' => ['is_assign' => 1]]
],
];
}

Expand Down
18 changes: 8 additions & 10 deletions tests/functional/CommonDBTM.php
Original file line number Diff line number Diff line change
Expand Up @@ -1814,16 +1814,14 @@ public function testCanViewItemAssignableAssets($itemtype)
]));
$this->boolean($item->canViewItem())->isTrue();

if ($itemtype !== \CartridgeItem::class && $itemtype !== \ConsumableItem::class) {
$this->boolean($item->canViewItem())->isTrue();
$_SESSION['glpiactiveprofile'][$itemtype::$rightname] = READ_OWNED;
$this->boolean($item->canViewItem())->isFalse();
$this->boolean($item->update([
'id' => $item->getID(),
'users_id' => $_SESSION['glpiID'],
]));
$this->boolean($item->canViewItem())->isTrue();
}
$this->boolean($item->canViewItem())->isTrue();
$_SESSION['glpiactiveprofile'][$itemtype::$rightname] = READ_OWNED;
$this->boolean($item->canViewItem())->isFalse();
$this->boolean($item->update([
'id' => $item->getID(),
'users_id' => $_SESSION['glpiID'],
]));
$this->boolean($item->canViewItem())->isTrue();

// Create group for the user
$group = new \Group();
Expand Down
Loading

0 comments on commit e25d7ba

Please sign in to comment.