From acb25c6534fc6c8d7870db88d0876ba76196bc18 Mon Sep 17 00:00:00 2001 From: Shamim Rezaie Date: Mon, 25 Feb 2019 16:19:51 +1100 Subject: [PATCH] MDL-64782 tool_monitor: Performance improvement --- .../tool/monitor/classes/privacy/provider.php | 21 ++++--------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/admin/tool/monitor/classes/privacy/provider.php b/admin/tool/monitor/classes/privacy/provider.php index d8ca913346e..2ffbf667310 100644 --- a/admin/tool/monitor/classes/privacy/provider.php +++ b/admin/tool/monitor/classes/privacy/provider.php @@ -114,29 +114,16 @@ class provider implements public static function get_users_in_context(userlist $userlist) { $context = $userlist->get_context(); - if (!is_a($context, \context_user::class)) { + if (!$context instanceof \context_user) { return; } - $params = [ - 'contextid' => $context->id, - 'contextuser' => CONTEXT_USER, - ]; - - $sql = "SELECT mr.userid - FROM {context} ctx - JOIN {tool_monitor_rules} mr ON ctx.instanceid = mr.userid - AND ctx.contextlevel = :contextuser - WHERE ctx.id = :contextid"; + $params = ['userid' => $context->instanceid]; + $sql = "SELECT userid FROM {tool_monitor_rules} WHERE userid = :userid"; $userlist->add_from_sql('userid', $sql, $params); - $sql = "SELECT ms.userid - FROM {context} ctx - LEFT JOIN {tool_monitor_subscriptions} ms ON ctx.instanceid = ms.userid - AND ctx.contextlevel = :contextuser - WHERE ctx.id = :contextid"; - + $sql = "SELECT userid FROM {tool_monitor_subscriptions} WHERE userid = :userid"; $userlist->add_from_sql('userid', $sql, $params); }