Details
-
Bug
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
3.3.5, 3.4.2
-
MOODLE_33_STABLE, MOODLE_34_STABLE
-
MOODLE_33_STABLE, MOODLE_34_STABLE
-
MDL-62430_master -
Description
Method delete_data_for_all_users_in_context() from ALL providers is called when context expires. Some plugins have insufficient checks on contextlevel and some modules do not check that this is a module of the given type
original description:
I found two problems with LTI module:
1. same as MDL-62427 has in forums - delete functions do not check that module type is 'lti' . You can expire old chat module and accidentally delete recent graded lti
2. system context is added for all users and the manager always reports that there is something for lti module even when user definitely does not have anything
So far we have -
- mod_lti
- mod_choice
- mod_assign export_user_data() and delete_data_for_user()
- mod_feedback export_user_data()
- mod_glossary export_user_data(), both delete functions
- mod_lesson export_user_data() partially
- mod_quiz - doesn't skip if module not found in delete_data_for_user - will cause php exception. Also doesn't check contextlevel
- mod_scorm export_user_data()
- mod_survey doesn't skip in delete_data_for_all_users_in_context(), not a big deal
- mod_wiki export_user_data()
- mod_workshop export_user_data()
The following modules are ok:
Book (null), chat, data, folder (null), forum (MDL-62427), imscp (null), label (null), page (null), resource (null), url (null)