The system property glide.canvas.grid.widget_performance_threshold is used to stop widgets from displaying if the loading time exceeds the threshold set. When a user without read access to the Report Stats table views a widget with the set threshold, an incorrect "recent average execution time" value is returned. This results in the widget loading automatically when it should be prevented from rendering.
When a user is denied access to the report_stats table the system can not retrieve the execution statistics for any given reporting widget, and therefore can not determine if the widget is exceeding the rendering time threshold.
Steps to Reproduce
1 - Create a widget that takes a little time to load, for example 15 seconds.
2 - Add the widget to a dashboard.
3 - Set the system property glide.canvas.grid.widget_performance_threshold to the value 10.
4 - Open the dashboard with a user that has one of the following roles: report_admin, pa_admin, pa_power_user. Observe this will pass the read ACL for reporting stats, but the widget will not load. Instead the following message will display: 'This widget will load for about 15 seconds'.
5 - Press 'Load' to display the widget as prompted.
6 - Perform the same test with a user without any of the required roles mentioned above. Observe the widget will load and take 15 seconds to display, completely ignoring the threshold value.
This problem is targeted to be fixed in a future release. As a workaround you can edit the Read ACL for the report_stats table to give access to other roles other than 'report_admin', 'pa_admin', 'pa_power_user'.
Related Problem: PRB1304719