From 039f5b0472efd56e782d36f60879f6778494239a Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Wed, 9 May 2018 19:57:45 +0800 Subject: [PATCH 1/4] MDL-61858 core_privacy: Add test to ensure component implementations --- privacy/tests/provider_test.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/privacy/tests/provider_test.php b/privacy/tests/provider_test.php index 943d54e7643..496d99678b4 100644 --- a/privacy/tests/provider_test.php +++ b/privacy/tests/provider_test.php @@ -163,6 +163,18 @@ class provider_testcase extends advanced_testcase { } } + /** + * Test that all providers implement some form of compliant provider. + * + * @dataProvider get_component_list + * @param string $component frankenstyle component name, e.g. 'mod_assign' + * @param string $classname the fully qualified provider classname + */ + public function test_all_providers_compliant($component, $classname) { + $manager = new manager(); + $this->assertTrue($manager->component_is_compliant($component)); + } + /** * Data provider for the metadata\provider tests. * From a4a05cffdb3d130df6d018eabcd20d1c9989420a Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Fri, 11 May 2018 16:34:31 +0800 Subject: [PATCH 2/4] MDL-61858 core_portfolio: added missing metadata implementation --- portfolio/boxnet/classes/privacy/provider.php | 1 + portfolio/flickr/classes/privacy/provider.php | 1 + portfolio/googledocs/classes/privacy/provider.php | 1 + portfolio/mahara/classes/privacy/provider.php | 1 + portfolio/picasa/classes/privacy/provider.php | 1 + 5 files changed, 5 insertions(+) diff --git a/portfolio/boxnet/classes/privacy/provider.php b/portfolio/boxnet/classes/privacy/provider.php index fb0a82f5e05..354bff812bb 100644 --- a/portfolio/boxnet/classes/privacy/provider.php +++ b/portfolio/boxnet/classes/privacy/provider.php @@ -36,6 +36,7 @@ use core_privacy\local\metadata\collection; class provider implements // This portfolio plugin does not store any data itself. // It has no database tables, and it purely acts as a conduit, sending data externally. + \core_privacy\local\metadata\provider, \core_portfolio\privacy\portfolio_provider { /** diff --git a/portfolio/flickr/classes/privacy/provider.php b/portfolio/flickr/classes/privacy/provider.php index f1b96c9d1c4..090b1eb83f0 100644 --- a/portfolio/flickr/classes/privacy/provider.php +++ b/portfolio/flickr/classes/privacy/provider.php @@ -36,6 +36,7 @@ use core_privacy\local\metadata\collection; class provider implements // This portfolio plugin does not store any data itself. // It has no database tables, and it purely acts as a conduit, sending data externally. + \core_privacy\local\metadata\provider, \core_portfolio\privacy\portfolio_provider { /** diff --git a/portfolio/googledocs/classes/privacy/provider.php b/portfolio/googledocs/classes/privacy/provider.php index f8734afcee3..9fe739a7358 100644 --- a/portfolio/googledocs/classes/privacy/provider.php +++ b/portfolio/googledocs/classes/privacy/provider.php @@ -36,6 +36,7 @@ use core_privacy\local\metadata\collection; class provider implements // This portfolio plugin does not store any data itself. // It has no database tables, and it purely acts as a conduit, sending data externally. + \core_privacy\local\metadata\provider, \core_portfolio\privacy\portfolio_provider { /** diff --git a/portfolio/mahara/classes/privacy/provider.php b/portfolio/mahara/classes/privacy/provider.php index be1719e83a3..a8731be01e0 100644 --- a/portfolio/mahara/classes/privacy/provider.php +++ b/portfolio/mahara/classes/privacy/provider.php @@ -36,6 +36,7 @@ use core_privacy\local\metadata\collection; class provider implements // This portfolio plugin does not store any data itself. // It has no database tables, and it purely acts as a conduit, sending data externally. + \core_privacy\local\metadata\provider, \core_portfolio\privacy\portfolio_provider { /** diff --git a/portfolio/picasa/classes/privacy/provider.php b/portfolio/picasa/classes/privacy/provider.php index 79e03382a6e..4f2fafe2d78 100644 --- a/portfolio/picasa/classes/privacy/provider.php +++ b/portfolio/picasa/classes/privacy/provider.php @@ -36,6 +36,7 @@ use core_privacy\local\metadata\collection; class provider implements // This portfolio plugin does not store any data itself. // It has no database tables, and it purely acts as a conduit, sending data externally. + \core_privacy\local\metadata\provider, \core_portfolio\privacy\portfolio_provider { /** From 91fdd3b8069237ffcb42e7c331e692ae7b037727 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Fri, 11 May 2018 17:35:24 +0800 Subject: [PATCH 3/4] MDL-61858 gradingform_guide: added missing metadata implementation --- grade/grading/form/guide/classes/privacy/provider.php | 1 + 1 file changed, 1 insertion(+) diff --git a/grade/grading/form/guide/classes/privacy/provider.php b/grade/grading/form/guide/classes/privacy/provider.php index a0f4494adaa..d5ec198df21 100644 --- a/grade/grading/form/guide/classes/privacy/provider.php +++ b/grade/grading/form/guide/classes/privacy/provider.php @@ -37,6 +37,7 @@ use \core_privacy\local\request\writer; * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class provider implements + \core_privacy\local\metadata\provider, \core_privacy\local\request\user_preference_provider { /** From e0700b4c79c3b3f4f20d44f5974923134033f9b4 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Fri, 11 May 2018 16:42:34 +0800 Subject: [PATCH 4/4] MDL-61858 tool_phpunit: added missing privacy null provider --- .../tool/phpunit/classes/privacy/provider.php | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 admin/tool/phpunit/classes/privacy/provider.php diff --git a/admin/tool/phpunit/classes/privacy/provider.php b/admin/tool/phpunit/classes/privacy/provider.php new file mode 100644 index 00000000000..ab9c4a8f297 --- /dev/null +++ b/admin/tool/phpunit/classes/privacy/provider.php @@ -0,0 +1,46 @@ +. + +/** + * Privacy Subsystem implementation for tool_phpunit. + * + * @package tool_phpunit + * @copyright 2018 Mark Nelson + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace tool_phpunit\privacy; + +defined('MOODLE_INTERNAL') || die(); + +/** + * Privacy Subsystem for tool_phpunit implementing null_provider. + * + * @copyright 2018 Mark Nelson + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class provider implements \core_privacy\local\metadata\null_provider { + + /** + * Get the language string identifier with the component's language + * file to explain why this plugin stores no data. + * + * @return string + */ + public static function get_reason() : string { + return 'privacy:metadata'; + } +}