Skip to content

Commit

Permalink
Implemented the Moodle Privacy API
Browse files Browse the repository at this point in the history
Fixes #15
  • Loading branch information
scara committed Apr 9, 2018
1 parent 3e40174 commit 5a9fad9
Show file tree
Hide file tree
Showing 5 changed files with 102 additions and 2 deletions.
3 changes: 3 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# v1.1.0 (Build: 2018040900)
- Implemented the Moodle Privacy API

# v1.0.4 (Build: 2017121000)
- Fixed an error when the course summary is not provided.

Expand Down
52 changes: 52 additions & 0 deletions classes/privacy/provider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?php
// This file is part of the Twitter Card local plugin for Moodle
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Privacy Subsystem implementation for local_twittercard.
*
* @package local_twittercard
* @copyright 2018 Matteo Scaramuccia <moodle@matteoscaramuccia.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

namespace local_twittercard\privacy;

defined('MOODLE_INTERNAL') || die();

// Backward compat.
class_exists('\core_privacy\local\metadata\null_provider') || die();

/**
* Privacy Subsystem implementation for local_twittercard implementing null_provider.
*
* @package local_twittercard
* @copyright 2018 Matteo Scaramuccia <moodle@matteoscaramuccia.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider implements
# This plugin does not store any personal user data.
\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() {
return 'privacy:metadata';
}
}
1 change: 1 addition & 0 deletions lang/en/local_twittercard.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
$string['enabled'] = 'Enabled';
$string['enabled_help'] = 'Enable a Twitter summary card for courses.';
$string['pluginname'] = 'Twitter card';
$string['privacy:metadata'] = 'The Twitter Card local plugin displays information from the Course, but does not effect or store any data itself.';
$string['twittercard'] = 'Twitter card';
$string['twittersite'] = 'Twitter site';
$string['twittersite_help'] = 'The Twitter @username of website the card should be attributed to.';
44 changes: 44 additions & 0 deletions tests/privacy_test.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?php
// This file is part of the Twitter Card local plugin for Moodle
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Tests for the Privacy API implementation in Twitter summary card.
*
* @package local_twittercard
* @copyright 2018 Matteo Scaramuccia <moodle@matteoscaramuccia.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

defined('MOODLE_INTERNAL') || die();

/**
* Class local_twittercard_privacy_testcase
*
* @package local_twittercard
* @copyright 2017 Matteo Scaramuccia <moodle@matteoscaramuccia.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class local_twittercard_privacy_testcase extends advanced_testcase {

public function test_null_provider() {
if (!class_exists('\core_privacy\local\metadata\null_provider')) {
$this->markTestSkipped('The Moodle code does not implement the Moodle Privacy API');
}

$this->assertTrue(class_exists('\local_twittercard\privacy\provider'));
$this->assertTrue(is_subclass_of('\local_twittercard\privacy\provider', '\core_privacy\local\metadata\null_provider'));
}
}
4 changes: 2 additions & 2 deletions version.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@
defined('MOODLE_INTERNAL') || die();

$plugin->component = 'local_twittercard';
$plugin->version = 2017121000;
$plugin->release = '1.0.4 (Build: 2017121000)';
$plugin->version = 2018040900;
$plugin->release = '1.1.0 (Build: 2018040900)';
$plugin->requires = 2017051500;
$plugin->maturity = MATURITY_STABLE;
$plugin->cron = 0;
Expand Down

0 comments on commit 5a9fad9

Please sign in to comment.