From b519dab3bd9332f9d602a62c17f976f8ec8d2d3e Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Thu, 18 Oct 2018 14:16:31 +0800 Subject: [PATCH] MDL-62560 tool_dataprivacy: Fetch user purpose once --- admin/tool/dataprivacy/classes/expired_contexts_manager.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/admin/tool/dataprivacy/classes/expired_contexts_manager.php b/admin/tool/dataprivacy/classes/expired_contexts_manager.php index 58b4f0a7f9b..c2dc16949a5 100644 --- a/admin/tool/dataprivacy/classes/expired_contexts_manager.php +++ b/admin/tool/dataprivacy/classes/expired_contexts_manager.php @@ -269,6 +269,8 @@ class expired_contexts_manager { $datalist = []; $expiredcontents = []; $pathstoskip = []; + + $userpurpose = data_registry::get_effective_contextlevel_value(CONTEXT_USER, 'purpose'); foreach ($fulllist as $record) { \context_helper::preload_from_record($record); $context = \context::instance_by_id($record->id, false); @@ -291,8 +293,12 @@ class expired_contexts_manager { continue; } - $purposevalue = $record->purposeid !== null ? $record->purposeid : context_instance::NOTSET; - $purpose = api::get_effective_context_purpose($context, $purposevalue); + if ($context instanceof \context_user) { + $purpose = $userpurpose; + } else { + $purposevalue = $record->purposeid !== null ? $record->purposeid : context_instance::NOTSET; + $purpose = api::get_effective_context_purpose($context, $purposevalue); + } if ($context instanceof \context_user && !empty($record->userdeleted)) { $expiryinfo = static::get_expiry_info($purpose, $record->userdeleted); -- 2.11.4.GIT