Commit Graph

49 Commits

Author SHA1 Message Date
Mahmoud Kassaei 95782015ba MDL-71258 questions: privacy support for settings defaults preferences 2021-04-30 10:14:38 +01:00
Ilya Tregubov ec47946ea9 MDL-69680 lib: Update jQuery version in Moodle files 2021-03-04 12:48:26 +08:00
Eloy Lafuente (stronk7) de245163e3 MDL-68875 privacy: Keep moodle_content_writer->get_path() the same
In MDL-62853 a new clean_param(PARAM_PATH) was added to the
moodle_content_writer->get_path() method. And this caused some
Windows tests to start failing.

The problem is that clean_param(PARAM_PATH) does normalise directory
separators to be always forward backslashes and that's normally ok
but the get_path() method has some DIRECTORY_SEPARATOR dependent code
that stopped working under windows.

After analysing various solutions, and trying to keep the behavior
EXACTLY like it was before MDL-62853, but with the cleaning included
we have applied 2 changes:

b) Move the clean_param() to later within the array_map() function,
that way the code there, that uses DIRECTORY_SEPARATOR will continue
working the same.

b) As far as there are more DIRECTORY_SEPARATOR dependent code later
in the function, also perform a str_replace() to convert back to the
OS directory separator.

Those 2 points together (a and b) make the behavior to be 100% the
original one, with separators being kept and the paths being cleaned.

This solution corresponds 100% with the proposed fixes named 3) and
4) in the issue.

Final note... all that DIRECTORY_SEPARATOR maybe needs a review because
it really shouldn't be used unless strictly needed. But that falls out
from this issue which goal was to keep things safely working like they
were before the regression (but with the cleaning applied).
2020-06-02 15:53:40 +02:00
Paul Holden d99e0ab7a2 MDL-62853 privacy: sanitize subcontext paths. 2020-04-21 14:38:22 +01:00
Paul Holden 07dc0cad34 MDL-64695 privacy: filter site fullname in data export. 2019-12-12 18:20:13 +00:00
Mihail Geshoski 88d2bc81c8 MDL-65751 lib: Update jQuery version in Moodle files 2019-07-15 08:45:34 +08:00
Binh Thai 658bf9d554 MDL-64291 GDPR export: Context paths can be very long, not unique 2019-01-28 19:49:09 +07:00
sam marshall fc570e6699 MDL-64497 GDPR: moodle_content_writer can cause endless loop
Fixes a buggy function by replacing it with a call to file_get_contents,
and adds error detection on a couple of file accesses.
2019-01-03 16:54:38 +00:00
Adrian Greeve 34adbfe0b1 MDL-62061 core_privacy: Stop directories being created.
This stops directories being created in the root directory
while running unit tests.
2018-12-06 11:25:32 +01:00
Damyon Wiese ff015b5f7a MDL-64220 privacy: Clean path params
We need to consistently clean the path params before we use them. This
shows a difference on windows where dir separators are different.
2018-11-27 15:01:41 +08:00
Mark Johnson 80aff7db49 MDL-63660 privacy: Include CSS locally for data export 2018-11-14 14:53:27 +00:00
Andrew Nicols 44e56956c6 MDL-63924 core_privacy: Add shared_userlist provider 2018-11-08 15:39:56 +08:00
Andrew Nicols bdccab4769 Merge branch 'MDL-63816-master' of git://github.com/mickhawkins/moodle 2018-11-02 08:00:32 +08:00
Michael Hawkins 52e5c8b739 MDL-63816 privacy: Corrected interface get_users_in_context description 2018-10-31 12:11:21 +08:00
Mihail Geshoski ed69d0aef1 MDL-63690 core_privacy: Handle when add_users() receives an empty array 2018-10-26 09:16:10 +08:00
Andrew Nicols 8ba35e317c MDL-63495 privacy: Add support for removal of multiple users in a context
This issue is a part of the MDL-62560 Epic.
2018-10-17 13:12:18 +08:00
Adrian Greeve ea81e783ef MDL-62491 privacy: Fix running the download script.
Previously running the code to generate the download file
was very fagile. Now the code can be run anywhere without
problems occuring copying files.
2018-10-09 09:31:13 +08:00
Adrian Greeve e90a0a7415 MDL-62491 core_privacy: Add html files to the user data export.
This adds html to the data export that allows for easier navigation
and reading of data.
2018-10-08 09:00:08 +08:00
Michael Hawkins 693f690c18 MDL-62660 tool_dataprivacy: Add ability to expire data requests
Also replaced Completed status with situation specific statuses.
Also improved UX on request pages in line with expiries and the aadditional statuses.
2018-08-20 15:31:20 +08:00
Eloy Lafuente (stronk7) c9840c0144 MDL-62619 privacy: Prevent action when boolean queries are involved
Before the patch, queries like:

SELECT 1 FROM dual UNION SELECT 2 FROM dual

were failing badly, with everything but the first numeric element
being ignored by the optimization.

So, being conservative, now we reduce the query being analysed,
ignoring any subquery, inline view (anything within parenthesis
in general) and, in the remaining query, if a boolean query (UNION,
MINUS, INTERSECT...) is found, we don't apply any optimization.
2018-08-09 16:05:55 +02:00
David Mudrák cea03cbd43 MDL-62619 privacy: Fix some bits of performance improvements
* We need to use is_numeric() in this case as is_int() would never
  return true.
* Extend the supported cases, add support for SQL consisting just of
  numerical value or selectinga numerical constant.
* Do not rely on any particulat letter case in provided SQL.
* Add unit tests for the new method. Even when it is a protected one, it
  is an essential unit to be tested on its own.
2018-07-27 10:14:43 +02:00
Andrew Nicols d7cb7550c7 MDL-62619 privacy: Improve performance of contexts loading
When possible, we want to use JOIN over WHERE IN. It is known that the
later performs badly in MySQL.
2018-07-27 10:14:43 +02:00
Adrian Greeve c84cb13cd4 MDL-62574 core_privacy: Check the contextlist for real contexts.
There are situations when contexts will be deleted in the provider.
The context list is not updated and so we have introduced a try
catch.
2018-06-12 11:24:38 +08:00
Eloy Lafuente (stronk7) 28ec28e026 Merge branch 'MDL-62251-master' of git://github.com/rezaies/moodle 2018-05-13 20:10:44 +02:00
Jun Pataleta 0697a52218 Merge branch 'MDL-62394-master' of git://github.com/andrewnicols/moodle 2018-05-11 14:23:41 +08:00
Andrew Nicols 20f3b33b24 MDL-62394 privacy: Make JSON export pretty 2018-05-11 14:12:10 +08:00
Shamim Rezaie 07890336ab MDL-62251 Privacy: Url path separator should be platform independant
It should always be forward slash.
2018-05-10 23:30:38 +10:00
Shamim Rezaie 44efefcbeb MDL-62251 Privacy: Fix get_path() and get_full_path() bug in Windows 2018-05-10 23:30:23 +10:00
Jake Dallimore 84bc2245f7 Merge branch 'MDL-62383-master' of git://github.com/junpataleta/moodle 2018-05-10 10:03:32 +08:00
Jun Pataleta 6c0c9d5d08 MDL-62383 privacy: Close recordset in contextlist::add_from_sql() 2018-05-10 09:55:33 +08:00
Jake Dallimore e4a37fbef1 MDL-62029 core_course: Fixes to context-aware provider implementation. 2018-05-09 15:34:41 +08:00
Adrian Greeve 9faf51a7ca MDL-62029 core_privacy: context aware provider creation. 2018-05-09 10:11:47 +08:00
Andrew Nicols 630a72f19f Merge branch 'MDL-62285-master' of git://github.com/ryanwyllie/moodle 2018-05-08 11:08:03 +08:00
Andrew Nicols 9846d710fe Merge branch 'wip-MDL-62137-master' of git://github.com/abgreeve/moodle 2018-05-07 15:24:01 +08:00
Adrian Greeve 6d3b250b4f MDL-62137 core_privacy: Update to helper to use core_completion 2018-05-07 14:28:17 +08:00
Sara Arjona 7a3707797d MDL-62240 privacy: Avoid error when path is higher than allowed
A new method shorten_filenames has been added to moodlelib.
2018-05-03 09:16:13 +02:00
Ryan Wyllie 3041fe6faa MDL-62285 privacy: use context id when generating context path
moodle_content_writer::get_context_path() now includes the context
id in the path to ensure that it will always generate unique paths
even when the context names are not unique.
2018-05-02 12:08:58 +08:00
Shamim Rezaie c5d720ab51 MDL-62060 core_privacy: Make sure the exported json is human readable 2018-05-01 12:35:00 +10:00
Andrew Nicols f829edb719 Merge branch 'MDL-62140_master' of git://github.com/markn86/moodle 2018-04-24 10:04:52 +08:00
Mark Nelson aa725516d3 MDL-62140 core_privacy: add helper functions to add system/user context 2018-04-23 20:06:02 +08:00
Jun Pataleta c8619b28a3 Merge branch 'MDL-62049_master' of git://github.com/markn86/moodle 2018-04-23 13:54:38 +08:00
Mark Nelson 63d170647c MDL-62049 core_privacy: use correct lang string for date 2018-04-23 13:03:23 +08:00
David Mudrák 7a429a160d MDL-62003 privacy: Fix reported coding style violation 2018-04-18 17:10:18 +02:00
David Mudrák 3ecbf154db MDL-62003 privacy: Consistently export files into _files folder
There were two major issues with the previous implementation:

* The exported folder name was localised so it was "Files" or "Soubory"
  etc depending on the current language. Yet URLs referring to the files
  in that folder were always rewritten with hard-coded English "files".
* Files from all fileareas and itemids were all exported to a single
  target directory. So if there were two files with the same name being
  exported from multiple areas (such as submission_content and
  submission_attachment in the workshop module), one would overwrite
  another.

The patch addresses these issues as follows:

* To unify the folder name and also to minimise the risk of conflict
  with a subcontext folder, we now always export stored files under
  "_files" folder.
* Under that folder, there is a subdirectory with the area name and then
  eventually another subdirectory with non-zero itemid. And there
  finally the stored_file is exported to under its own file path.
2018-04-18 17:10:12 +02:00
Andrew Nicols fa9243cd85 MDL-61743 core_privacy: Reduce context specificty
Deletion is called for a context against all components, not just
modules.
2018-04-06 08:57:24 +02:00
Andrew Nicols 3fb9ad0ea7 MDL-61703 privacy: Allow writing of user preferences at any context 2018-03-29 15:28:13 +08:00
Andrew Nicols e98f0cf7ff MDL-61307 privacy: Rename deletion functions 2018-03-13 08:48:13 +08:00
Andrew Nicols 70f0923499 MDL-61307 core: Remove deletion_criteria 2018-03-13 08:48:12 +08:00
Andrew Nicols 81f1e31a51 MDL-61307 core_privacy: Define and test providers 2018-03-09 10:01:18 +08:00