Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
Jane Adelmann | faaca3e8ac | |
Jane Adelmann | 6208bf4ff3 |
|
@ -26,6 +26,16 @@ namespace plagiarism_pchkorg\privacy;
|
||||||
defined('MOODLE_INTERNAL') || die();
|
defined('MOODLE_INTERNAL') || die();
|
||||||
|
|
||||||
use core_privacy\local\metadata\collection;
|
use core_privacy\local\metadata\collection;
|
||||||
|
use core_privacy\local\request\contextlist;
|
||||||
|
use core_privacy\local\request\approved_contextlist;
|
||||||
|
use core_privacy\local\request\userlist;
|
||||||
|
use core_privacy\local\request\approved_userlist;
|
||||||
|
|
||||||
|
if (interface_exists('\core_privacy\local\request\userlist')) {
|
||||||
|
interface my_userlist extends \core_privacy\local\request\userlist{}
|
||||||
|
} else {
|
||||||
|
interface my_userlist {};
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class provider
|
* Class provider
|
||||||
|
@ -33,8 +43,10 @@ use core_privacy\local\metadata\collection;
|
||||||
* @package plagiarism_pchkorg\privacy
|
* @package plagiarism_pchkorg\privacy
|
||||||
*/
|
*/
|
||||||
class provider implements
|
class provider implements
|
||||||
|
my_userlist,
|
||||||
\core_privacy\local\metadata\provider,
|
\core_privacy\local\metadata\provider,
|
||||||
\core_privacy\local\request\plugin\provider {
|
\core_privacy\local\request\plugin\provider,
|
||||||
|
\core_privacy\local\request\core_userlist_provider {
|
||||||
|
|
||||||
// This trait must be included.
|
// This trait must be included.
|
||||||
use \core_privacy\local\legacy_polyfill;
|
use \core_privacy\local\legacy_polyfill;
|
||||||
|
@ -92,4 +104,80 @@ class provider implements
|
||||||
|
|
||||||
return $collection;
|
return $collection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the list of contexts that contain user information for the specified user.
|
||||||
|
*
|
||||||
|
* @param int $userid The user to search.
|
||||||
|
* @return contextlist $contextlist The contextlist containing the list of contexts used in this plugin.
|
||||||
|
*/
|
||||||
|
public static function _get_contexts_for_userid(int $userid) : contextlist {
|
||||||
|
$contextlist = new contextlist();
|
||||||
|
$sql = "SELECT DISTINCT cm FROM {plagiarism_pchkorg_files} WHERE userid = :userid";
|
||||||
|
$params = [
|
||||||
|
'userid' => $userid
|
||||||
|
];
|
||||||
|
$contextlist->add_from_sql($sql, $params);
|
||||||
|
|
||||||
|
return $contextlist;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the list of users who have data within a context.
|
||||||
|
*
|
||||||
|
* @param userlist $userlist The userlist containing the list of users who have data in this context/plugin combination.
|
||||||
|
*/
|
||||||
|
public static function get_users_in_context(userlist $userlist) {
|
||||||
|
$context = $userlist->get_context();
|
||||||
|
if (!$context instanceof \context_module) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$params = [
|
||||||
|
'cm' => $context->instanceid,
|
||||||
|
];
|
||||||
|
$sql = "SELECT DISTINCT userid FROM {plagiarism_pchkorg_files} WHERE cm = :cm";
|
||||||
|
$userlist->add_from_sql('userid', $sql, $params);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Export all user data for the specified user, in the specified contexts.
|
||||||
|
*
|
||||||
|
* @param approved_contextlist $contextlist The approved contexts to export information for.
|
||||||
|
*/
|
||||||
|
public static function _export_user_data(approved_contextlist $contextlist) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete multiple users within a single context.
|
||||||
|
*
|
||||||
|
* @param approved_userlist $userlist The approved context and user information to delete information for.
|
||||||
|
*/
|
||||||
|
public static function delete_data_for_users(approved_userlist $userlist) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Export all user preferences for the plugin.
|
||||||
|
*
|
||||||
|
* @param int $userid The userid of the user whose data is to be exported.
|
||||||
|
*/
|
||||||
|
public static function _export_user_preferences(int $userid) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete all data for all users in the specified context.
|
||||||
|
*
|
||||||
|
* @param context $context The specific context to delete data for.
|
||||||
|
*/
|
||||||
|
public static function _delete_data_for_all_users_in_context(\context $context) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete all user data for the specified user, in the specified contexts.
|
||||||
|
*
|
||||||
|
* @param approved_contextlist $contextlist The approved contexts and user information to delete information for.
|
||||||
|
*/
|
||||||
|
public static function _delete_data_for_user(approved_contextlist $contextlist) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
10
lib.php
10
lib.php
|
@ -797,16 +797,12 @@ display: inline-block;"
|
||||||
|
|
||||||
// Set the author and submitter.
|
// Set the author and submitter.
|
||||||
$submitter = $eventdata['userid'];
|
$submitter = $eventdata['userid'];
|
||||||
$author = (!empty($eventdata['relateduserid'])) ? $eventdata['relateduserid'] : $eventdata['userid'];
|
|
||||||
|
|
||||||
// Related user ID will be NULL if an instructor submits on behalf of a student who is in a group.
|
// Related user ID will be NULL if an instructor submits on behalf of a student who is in a group.
|
||||||
// To get around this, we get the group ID, get the group members and set the author as the first student in the group.
|
// To get around this, we get the group ID, get the group members and set the author as the first student in the group.
|
||||||
if ((empty($eventdata['relateduserid'])) && ($eventdata['other']['modulename'] == 'assign')
|
if ((empty($eventdata['relateduserid'])) && ($eventdata['other']['modulename'] == 'assign')
|
||||||
&& has_capability('mod/assign:editothersubmission', $context, $submitter)) {
|
&& has_capability('mod/assign:editothersubmission', $context, $submitter)) {
|
||||||
$moodlesubmission = $DB->get_record('assign_submission', array('id' => $eventdata['objectid']), 'id, groupid');
|
$moodlesubmission = $DB->get_record('assign_submission', array('id' => $eventdata['objectid']), 'id, groupid');
|
||||||
if (!empty($moodlesubmission->groupid)) {
|
|
||||||
$author = $this->get_first_group_author($cm->course, $moodlesubmission->groupid);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($eventdata['other']['modulename'] === 'forum'
|
if ($eventdata['other']['modulename'] === 'forum'
|
||||||
|
@ -976,7 +972,7 @@ display: inline-block;"
|
||||||
$moodlesubmission = $DB->get_record('assign_submission', array('id' => $eventdata['objectid']), 'id');
|
$moodlesubmission = $DB->get_record('assign_submission', array('id' => $eventdata['objectid']), 'id');
|
||||||
|
|
||||||
$moodletextsubmission = $DB->get_record('assignsubmission_onlinetext',
|
$moodletextsubmission = $DB->get_record('assignsubmission_onlinetext',
|
||||||
array('submission' => $moodlesubmission->id), 'onlinetext');
|
array('submission' => $eventdata['objectid']), 'onlinetext');
|
||||||
|
|
||||||
if ($moodletextsubmission) {
|
if ($moodletextsubmission) {
|
||||||
$eventdata['other']['content'] = $moodletextsubmission->onlinetext;
|
$eventdata['other']['content'] = $moodletextsubmission->onlinetext;
|
||||||
|
@ -984,8 +980,8 @@ display: inline-block;"
|
||||||
|
|
||||||
$filesconditions = array(
|
$filesconditions = array(
|
||||||
'component' => 'assignsubmission_file',
|
'component' => 'assignsubmission_file',
|
||||||
'itemid' => $moodlesubmission->id,
|
'itemid' => $eventdata['objectid'],
|
||||||
'userid' => $author
|
'userid' => $eventdata['userid']
|
||||||
);
|
);
|
||||||
|
|
||||||
$moodlefiles = $DB->get_records('files', $filesconditions);
|
$moodlefiles = $DB->get_records('files', $filesconditions);
|
||||||
|
|
|
@ -26,9 +26,9 @@ defined('MOODLE_INTERNAL') || die();
|
||||||
if (!isset($plugin)) {
|
if (!isset($plugin)) {
|
||||||
$plugin = new stdClass();
|
$plugin = new stdClass();
|
||||||
}
|
}
|
||||||
$plugin->version = 2023101216;
|
$plugin->version = 2024030512;
|
||||||
$plugin->requires = 2020061501; // Requires Moodle 3.9 .
|
$plugin->requires = 2020061501; // Requires Moodle 3.9 .
|
||||||
$plugin->release = 'v3.14.5';
|
$plugin->release = 'v3.14.7';
|
||||||
$plugin->component = 'plagiarism_pchkorg';
|
$plugin->component = 'plagiarism_pchkorg';
|
||||||
$plugin->maturity = MATURITY_STABLE;
|
$plugin->maturity = MATURITY_STABLE;
|
||||||
$plugin->dependencies = array(
|
$plugin->dependencies = array(
|
||||||
|
|
Loading…
Reference in New Issue