-
Type:
Bug
-
Resolution: Fixed
-
Affects Version/s: None
-
Component/s: Task Management, User Management
-
Critical
-
None
-
Loading users for tasks may lead to excessive full scans and per-row subquery execution, slowing down the DB. This is optimised.
-
None
-
Emptyshow more show less
Problem
The current SQL query that retrieves users with their assigned tasks runs extremely slowly (up to 500 seconds in production).
More over users in the list are not filtered according to permissions.
Additionally users are shown incorrectly in jobs tooltip in task overview
Solution
Redo list building that will also respect permissions of logged in user.
For list of users in "Additional filters"
In task overview we should show:
- only users that have some jobs in tasks
- only users that can be managed by current logged in user
In tooltip in task overview
If task not anonymised all jobs with user names are shown.
Login is visible only if current user can manage user of a job. So logins are shown to PM, ClientPM, PMLight and Coordinator if they have permission to see/manage user.
If task anonymised same logic as with job management will be applied. If user can manage job - then also can see it in tooltip:
- Admin should be able able to see all users and jobs.
- PM can see all simple user jobs + coordinators of top coordinator groups
- Client PM can see all simple user jobs in tasks of his clients or he is PM of task + coordinators of top coordinator groups in tasks of his clients or he is PM of task
- Light PM can see all simple user jobs in tasks where he is PM + coordinators of top coordinator groups in tasks where he is PM
- Coordinator can see only user jobs of his coordinator group and Coordinator of his direct sub-groups
- Coordinator group user can see only his job
- Simple editor can see only his job
Project overview job list
Now jobs of simple users will be visible for Coordinators if task is not anonymised.
Coordinator can only see then, interaction is still forbidden.
Front End Testing
Ensure that task overview filtering does now as described above.