You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2013-04-19 01:35:36

geoalbi
Member
From: Romania
Registered: 2012-12-18
Posts: 182

Recursive profile rights not working in moved entities

I don't know if this is a bug, so I'll first post this here. In advance, sorry for the convoluted explanation, the setup made it this way.
Brief: Moving an entity Y as child to another entity X, breaks the right set at X to be assigned tickets in Y and downstream in the "Assigned to:" drop down list in the ticket form.

Setup:
GLPI 0.83.7
Define 2 entities, both children of the Root entity: Test and Subtest
Now, edit Subtest, move it as a child of Test.

Define a user in Test: it will be associated the default Self-Service(D) profile. Add to it the Technician(R) profile in the same entity: Test, but Recursive, so that we can assign tickets to it in all child entities.
Create a ticket in the Subtest entity. Since the user has the Technician profile defined recursive above (in Test), we should be allowed to assign the ticket to it. Try assigning. You can't, the user is not in the drop down list. It should!

Test the hypotheses: "Profiles assigned with Recursive property should be visible downstream from parent entity in all children":
- Delete the Technician(R) from the user in Test (defined above);
- Add the Technician(R) to the user in the Root Entity;
Now again, go see if you can assign the ticket in Subtest to it. You can! This time you will see the user in the list, so the profile rights from the Root entity propagated: Root>Test>Subtest.

Test the hypotheses: "Moving an already created entity somehow broke the inheritance of profile rights from this level to children".
- create another entity Sub_subtest, this time already under Root>Test>Subtest;
- Create a ticket in Sub_subtest;
- Remove Technician from the user at Root (you set it above);
- Add Technician to the user in Test.
- Try assigning both tickets (from Subtest and Sub_subtest) to the user. Will fail in both, the user is not in the drop down list;
- Delete Technician from the user in Test.
- Add Technician to the user in Subtest.
- Try assigning both tickets (from Subtest and Sub_subtest) to the user. Success. The user is in the list in Subtest (explicitly assigned the Technician rights at this level) and Sub_subtest (propagated from one level above);
- Repeat by deleting Technician at Subtest level and adding at Root. Again, the user is in the list, so recursive propagates.

Test the hypotheses: "This affects just the ability to allocate a ticket by breaking the select in the drop down list and not the other rights that come with being assigned Technician(R) above".
- Remove Technician from the user at Root (set above);
- Add Technician to the user in Test.
- Login as the user, change entity down the hierarchy from Test>Subtest>Sub_subtest. Check that you can view the tickets in the last 2. Success!

Conclusion: Moving an entity Y as child to another entity X, breaks the inheritance of the right to be assigned tickets set at X  in Y and all children of Y.
The problem is in the select that returns the drop down list in the "Assigned to:" in the Ticket form.
As far as I've seen, no other rights are affected.

Workaround:
Assign the rights by setting the profile in an entity above or below (no pretty).

Last edited by geoalbi (2013-04-19 09:40:33)

Offline

Board footer

Powered by FluxBB