mirror of
https://github.com/moodle/moodle.git
synced 2025-04-13 12:32:08 +02:00
MDL-9983, MDL-13998 core events related cleanup; merged from MOODLE_19_STABLE
This commit is contained in:
parent
c4f3038349
commit
2942a5cd34
@ -86,6 +86,9 @@ class auth_plugin_email extends auth_plugin_base {
|
||||
/// Save any custom profile field information
|
||||
profile_save_data($user);
|
||||
|
||||
$user = get_record('user', 'id', $user->id);
|
||||
events_trigger('user_created', $user);
|
||||
|
||||
if (! send_confirmation_email($user)) {
|
||||
print_error('auth_emailnoemail','auth');
|
||||
}
|
||||
|
@ -403,6 +403,9 @@ class auth_plugin_ldap extends auth_plugin_base {
|
||||
$this->update_user_record($user->username);
|
||||
update_internal_user_password($user, $plainslashedpassword);
|
||||
|
||||
$user = get_record('user', 'id', $user->id);
|
||||
events_trigger('user_created', $user);
|
||||
|
||||
if (! send_confirmation_email($user)) {
|
||||
print_error('auth_emailnoemail', 'auth');
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
||||
$moveto = optional_param('moveto', 0, PARAM_INT);
|
||||
$rename = optional_param('rename', '', PARAM_TEXT);
|
||||
$resort = optional_param('resort', 0, PARAM_BOOL);
|
||||
$categorytheme= optional_param('categorytheme', false, PARAM_CLEAN);
|
||||
$categorytheme= optional_param('categorytheme', false, PARAM_SAFEDIR);
|
||||
|
||||
if ($CFG->forcelogin) {
|
||||
require_login();
|
||||
@ -59,12 +59,12 @@
|
||||
if (has_capability('moodle/category:update', $context)) {
|
||||
/// Rename the category if requested
|
||||
if (!empty($rename) and confirm_sesskey()) {
|
||||
$category->name = $rename;
|
||||
if (!$DB->set_field("course_categories", "name", $category->name, array("id"=>$category->id))) {
|
||||
if (!$DB->set_field("course_categories", "name", $rename, array("id"=>$category->id))) {
|
||||
notify("An error occurred while renaming the category");
|
||||
}
|
||||
// MDL-9983
|
||||
events_trigger('category_updated', $category);
|
||||
$category->name = $rename;
|
||||
//trigger events
|
||||
events_trigger('course_category_updated', $category);
|
||||
}
|
||||
|
||||
/// Set the category theme if requested
|
||||
|
@ -72,12 +72,9 @@
|
||||
|
||||
print_heading($strdeletingcourse);
|
||||
|
||||
delete_course($course->id);
|
||||
delete_course($course);
|
||||
fix_course_sortorder(); //update course count in catagories
|
||||
|
||||
// MDL-9983
|
||||
events_trigger('course_deleted', $course);
|
||||
|
||||
print_heading( get_string("deletedcourse", "", format_string($course->shortname)) );
|
||||
|
||||
print_continue("category.php?id=$course->category");
|
||||
|
@ -122,8 +122,6 @@
|
||||
if (!update_course($data)) {
|
||||
print_error('coursenotupdated');
|
||||
}
|
||||
// MDL-9983
|
||||
events_trigger('course_updated', $data);
|
||||
redirect($CFG->wwwroot."/course/view.php?id=$course->id");
|
||||
}
|
||||
}
|
||||
|
@ -2772,7 +2772,7 @@ function category_delete_full($category, $showfeedback=true) {
|
||||
|
||||
if ($courses = $DB->get_records('course', array('category'=>$category->id), 'sortorder ASC')) {
|
||||
foreach ($courses as $course) {
|
||||
if (!delete_course($course->id, false)) {
|
||||
if (!delete_course($course, false)) {
|
||||
notify("Error deleting course $course->shortname");
|
||||
return false;
|
||||
}
|
||||
@ -2791,7 +2791,7 @@ function category_delete_full($category, $showfeedback=true) {
|
||||
$DB->delete_records('course_categories', array('id'=>$category->id));
|
||||
delete_context(CONTEXT_COURSECAT, $category->id);
|
||||
|
||||
events_trigger('category_deleted', $category);
|
||||
events_trigger('course_category_deleted', $category);
|
||||
|
||||
notify(get_string('coursecategorydeleted', '', format_string($category->name)), 'notifysuccess');
|
||||
|
||||
@ -2841,7 +2841,7 @@ function category_delete_move($category, $newparentid, $showfeedback=true) {
|
||||
$DB->delete_records('course_categories', array('id'=>$category->id));
|
||||
delete_context(CONTEXT_COURSECAT, $category->id);
|
||||
|
||||
events_trigger('category_deleted', $category);
|
||||
events_trigger('course_category_deleted', $category);
|
||||
|
||||
notify(get_string('coursecategorydeleted', '', format_string($category->name)), 'notifysuccess');
|
||||
|
||||
@ -2998,6 +2998,9 @@ function create_course($data) {
|
||||
|
||||
add_to_log(SITEID, 'course', 'new', 'view.php?id='.$course->id, $data->fullname.' (ID '.$course->id.')');
|
||||
|
||||
//trigger events
|
||||
events_trigger('course_created', $course);
|
||||
|
||||
return $course;
|
||||
}
|
||||
|
||||
@ -3091,6 +3094,8 @@ function update_course($data) {
|
||||
}
|
||||
|
||||
}
|
||||
//trigger events
|
||||
events_trigger('course_updated', $course);
|
||||
|
||||
return true;
|
||||
|
||||
|
@ -60,11 +60,6 @@ if ($id and $delete) {
|
||||
|
||||
} else if (confirm_sesskey()){
|
||||
if (groups_delete_group($id)) {
|
||||
// MDL-9983
|
||||
$eventdata = new object();
|
||||
$eventdata->group = $id;
|
||||
$eventdata->course = $courseid;
|
||||
events_trigger('group_deleted', $eventdata);
|
||||
redirect('index.php?id='.$course->id);
|
||||
} else {
|
||||
print_error('erroreditgroup', 'group', $returnurl);
|
||||
|
@ -60,11 +60,6 @@ if ($id and $delete) {
|
||||
|
||||
} else if (confirm_sesskey()){
|
||||
if (groups_delete_grouping($id)) {
|
||||
// MDL-9983
|
||||
$eventdata = new object();
|
||||
$eventdata->group = $id;
|
||||
$eventdata->course = $courseid;
|
||||
events_trigger('grouping_deleted', $eventdata);
|
||||
redirect($returnurl);
|
||||
} else {
|
||||
print_error('erroreditgrouping', 'group', $returnurl);
|
||||
|
116
group/lib.php
116
group/lib.php
@ -3,7 +3,7 @@
|
||||
* Extra library for groups and groupings.
|
||||
*
|
||||
* @copyright © 2006 The Open University
|
||||
* @author J.White AT open.ac.uk
|
||||
* @author J.White AT open.ac.uk, Petr Skoda (skodak)
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
|
||||
* @package groups
|
||||
*/
|
||||
@ -43,11 +43,11 @@ function groups_add_member($groupid, $userid) {
|
||||
//update group info
|
||||
$DB->set_field('groups', 'timemodified', $member->timeadded, array('id'=>$groupid));
|
||||
|
||||
// MDL-9983
|
||||
//trigger groups events
|
||||
$eventdata = new object();
|
||||
$eventdata->groupid = $groupid;
|
||||
$eventdata->userid = $userid;
|
||||
events_trigger('group_user_added', $eventdata);
|
||||
$eventdata->userid = $userid;
|
||||
events_trigger('groups_member_added', $eventdata);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -75,6 +75,12 @@ function groups_remove_member($groupid, $userid) {
|
||||
//update group info
|
||||
$DB->set_field('groups', 'timemodified', time(), array('id'=>$groupid));
|
||||
|
||||
//trigger groups events
|
||||
$eventdata = new object();
|
||||
$eventdata->groupid = $groupid;
|
||||
$eventdata->userid = $userid;
|
||||
events_trigger('groups_member_removed', $eventdata);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -93,11 +99,18 @@ function groups_create_group($data, $um=false) {
|
||||
$data->name = trim($data->name);
|
||||
$id = $DB->insert_record('groups', $data);
|
||||
|
||||
if ($id and $um) {
|
||||
//update image
|
||||
if (save_profile_image($id, $um, 'groups')) {
|
||||
$DB->set_field('groups', 'picture', 1, array('id'=>$id));
|
||||
if ($id) {
|
||||
$data->id = $id;
|
||||
if ($um) {
|
||||
//update image
|
||||
if (save_profile_image($id, $um, 'groups')) {
|
||||
$DB->set_field('groups', 'picture', 1, array('id'=>$id));
|
||||
}
|
||||
$data->picture = 1;
|
||||
}
|
||||
|
||||
//trigger groups events
|
||||
events_trigger('groups_group_created', $data);
|
||||
}
|
||||
|
||||
return $id;
|
||||
@ -114,7 +127,15 @@ function groups_create_grouping($data) {
|
||||
$data->timecreated = time();
|
||||
$data->timemodified = $data->timecreated;
|
||||
$data->name = trim($data->name);
|
||||
return $DB->insert_record('groupings', $data);
|
||||
$id = $DB->insert_record('groupings', $data);
|
||||
|
||||
if ($id) {
|
||||
//trigger groups events
|
||||
$data->id = $id;
|
||||
events_trigger('groups_grouping_created', $data);
|
||||
}
|
||||
|
||||
return $id;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -131,11 +152,17 @@ function groups_update_group($data, $um=false) {
|
||||
$data->name = trim($data->name);
|
||||
$result = $DB->update_record('groups', $data);
|
||||
|
||||
if ($result and $um) {
|
||||
//update image
|
||||
if (save_profile_image($data->id, $um, 'groups')) {
|
||||
if ($result) {
|
||||
if ($um) {
|
||||
//update image
|
||||
if (save_profile_image($data->id, $um, 'groups')) {
|
||||
$DB->set_field('groups', 'picture', 1, array('id'=>$data->id));
|
||||
$data->picture = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//trigger groups events
|
||||
events_trigger('groups_group_updated', $data);
|
||||
}
|
||||
|
||||
return $result;
|
||||
@ -150,21 +177,32 @@ function groups_update_grouping($data) {
|
||||
global $DB;
|
||||
$data->timemodified = time();
|
||||
$data->name = trim($data->name);
|
||||
return $DB->update_record('groupings', $data);
|
||||
$result = $DB->update_record('groupings', $data);
|
||||
if ($result) {
|
||||
//trigger groups events
|
||||
events_trigger('groups_grouping_updated', $data);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a group best effort, first removing members and links with courses and groupings.
|
||||
* Removes group avatar too.
|
||||
* @param int $groupid The group to delete
|
||||
* @param mixed $grouporid The id of group to delete or full group object
|
||||
* @return boolean True if deletion was successful, false otherwise
|
||||
*/
|
||||
function groups_delete_group($groupid) {
|
||||
function groups_delete_group($grouporid) {
|
||||
global $CFG, $DB;
|
||||
require_once($CFG->libdir.'/gdlib.php');
|
||||
|
||||
if (empty($groupid)) {
|
||||
return false;
|
||||
if (is_object($grouporid)) {
|
||||
$groupid = $grouporid->id;
|
||||
$group = $grouporid;
|
||||
} else {
|
||||
$groupid = $grouporid;
|
||||
if (!$group = $DB->get_record('groups', array('id'=>$groupid))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// delete group calendar events
|
||||
@ -176,7 +214,13 @@ function groups_delete_group($groupid) {
|
||||
//then imge
|
||||
delete_profile_image($groupid, 'groups');
|
||||
//group itself last
|
||||
return $DB->delete_records('groups', array('id'=>$groupid));
|
||||
$result = $DB->delete_records('groups', array('id'=>$groupid));
|
||||
if ($result) {
|
||||
//trigger groups events
|
||||
events_trigger('groups_group_deleted', $group);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -184,12 +228,17 @@ function groups_delete_group($groupid) {
|
||||
* @param int $groupingid
|
||||
* @return bool success
|
||||
*/
|
||||
function groups_delete_grouping($groupingid) {
|
||||
function groups_delete_grouping($groupingorid) {
|
||||
global $DB;
|
||||
|
||||
if (empty($groupingid)) {
|
||||
return false;
|
||||
|
||||
if (is_object($groupingorid)) {
|
||||
$groupingid = $groupingorid->id;
|
||||
$grouping = $groupingorid;
|
||||
} else {
|
||||
$groupingid = $groupingorid;
|
||||
if (!$grouping = $DB->get_record('groupings', array('id'=>$groupingorid))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//first delete usage in groupings_groups
|
||||
@ -199,7 +248,14 @@ function groups_delete_grouping($groupingid) {
|
||||
// remove the groupingid from all course modules
|
||||
$DB->set_field('course_modules', 'groupingid', 0, array('groupingid'=>$groupingid));
|
||||
//group itself last
|
||||
return $DB->delete_records('groupings', array('id'=>$groupingid));
|
||||
$result = $DB->delete_records('groupings', array('id'=>$groupingid));
|
||||
|
||||
if ($result) {
|
||||
//trigger groups events
|
||||
events_trigger('groups_grouping_deleted', $grouping);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -214,6 +270,9 @@ function groups_delete_group_members($courseid, $showfeedback=false) {
|
||||
$groupssql = "SELECT id FROM {groups} g WHERE g.courseid = ?";
|
||||
$DB->delete_records_select('groups_members', "groupid IN ($groupssql)", array($courseid));
|
||||
|
||||
//trigger groups events
|
||||
events_trigger('groups_members_removed', $courseid);
|
||||
|
||||
if ($showfeedback) {
|
||||
notify(get_string('deleted').' groups_members');
|
||||
}
|
||||
@ -233,6 +292,9 @@ function groups_delete_groupings_groups($courseid, $showfeedback=false) {
|
||||
$groupssql = "SELECT id FROM {groups} g WHERE g.courseid = ?";
|
||||
$DB->delete_records_select('groupings_groups', "groupid IN ($groupssql)", array($courseid));
|
||||
|
||||
//trigger groups events
|
||||
events_trigger('groups_groupings_groups_removed', $courseid);
|
||||
|
||||
if ($showfeedback) {
|
||||
notify(get_string('deleted').' groupings_groups');
|
||||
}
|
||||
@ -266,6 +328,10 @@ function groups_delete_groups($courseid, $showfeedback=false) {
|
||||
$DB->delete_records_select('event', "groupid IN ($groupssql)", array($courseid));
|
||||
|
||||
$DB->delete_records('groups', array('courseid'=>$courseid));
|
||||
|
||||
//trigger groups events
|
||||
events_trigger('groups_groups_deleted', $courseid);
|
||||
|
||||
if ($showfeedback) {
|
||||
notify(get_string('deleted').' groups');
|
||||
}
|
||||
@ -293,6 +359,10 @@ function groups_delete_groupings($courseid, $showfeedback=false) {
|
||||
$DB->set_field('course_modules', 'groupingid', 0, array('course'=>$courseid));
|
||||
|
||||
$DB->delete_records('groupings', array('courseid'=>$courseid));
|
||||
|
||||
//trigger groups events
|
||||
events_trigger('groups_groupings_deleted', $courseid);
|
||||
|
||||
if ($showfeedback) {
|
||||
notify(get_string('deleted').' groupings');
|
||||
}
|
||||
|
@ -64,12 +64,6 @@ if ($frm = data_submitted() and confirm_sesskey()) {
|
||||
if (!groups_remove_member($groupid, $userid)) {
|
||||
print_error('erroraddremoveuser', 'group', $returnurl);
|
||||
}
|
||||
|
||||
// MDL-9983
|
||||
$eventdata = new object();
|
||||
$eventdata -> groupid = $groupid;
|
||||
$eventdata -> userid = $userid;
|
||||
events_trigger('group_user_removed', $eventdata);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,50 @@
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
/* List of handlers */
|
||||
|
||||
$handlers = array (); // no handlers for now in core
|
||||
|
||||
|
||||
|
||||
/* List of events thrown from Moodle core
|
||||
|
||||
==== user related events ====
|
||||
|
||||
user_created - object user table record
|
||||
user_updated - object user table record
|
||||
user_deleted - object user table record
|
||||
|
||||
==== course related events ====
|
||||
|
||||
course_category_updated - object course_categories table record
|
||||
course_category_created - object course_categories table record
|
||||
course_category_deleted - object course_categories table record
|
||||
|
||||
course_created - object course table record
|
||||
course_updated - object course table record
|
||||
course_deleted - object course table record
|
||||
|
||||
==== group related events ====
|
||||
|
||||
groups_group_created - object groups_group table record
|
||||
groups_group_updated - object groups_group table record
|
||||
groups_group_deleted - object groups_group table record
|
||||
|
||||
groups_member_added - object userid, groupid properties
|
||||
groups_member_removed - object userid, groupid properties
|
||||
|
||||
groups_grouping_created - object groups_grouping table record
|
||||
groups_grouping_updated - object groups_grouping table record
|
||||
groups_grouping_deleted - object groups_grouping table record
|
||||
|
||||
groups_members_removed - int course id - removed all members from all groups in course
|
||||
groups_groupings_groups_removed - int course id - removed all groups from all groupings in course
|
||||
groups_groups_deleted - int course id - deleted all course groups
|
||||
groups_groupings_deleted - int course id - deleted all course groupings
|
||||
|
||||
|
||||
*/
|
||||
|
||||
?>
|
||||
|
@ -2901,6 +2901,8 @@ function delete_user($user) {
|
||||
// notify auth plugin - do not block the delete even when plugin fails
|
||||
$authplugin = get_auth_plugin($user->auth);
|
||||
$authplugin->user_delete($user);
|
||||
|
||||
events_trigger('user_deleted', $user);
|
||||
return true;
|
||||
|
||||
} else {
|
||||
@ -3326,16 +3328,26 @@ function set_login_session_preferences() {
|
||||
* Delete a course, including all related data from the database,
|
||||
* and any associated files from the moodledata folder.
|
||||
*
|
||||
* @param int $courseid The id of the course to delete.
|
||||
* @param mixed $courseorid The id of the course or course object to delete.
|
||||
* @param bool $showfeedback Whether to display notifications of each action the function performs.
|
||||
* @return bool true if all the removals succeeded. false if there were any failures. If this
|
||||
* method returns false, some of the removals will probably have succeeded, and others
|
||||
* failed, but you have no way of knowing which.
|
||||
*/
|
||||
function delete_course($courseid, $showfeedback = true) {
|
||||
function delete_course($courseorid, $showfeedback = true) {
|
||||
global $CFG, $DB;
|
||||
$result = true;
|
||||
|
||||
if (is_object($courseorid)) {
|
||||
$courseid = $courseorid->id;
|
||||
$course = $courseorid;
|
||||
} else {
|
||||
$courseid = $courseorid;
|
||||
if (!$course = $DB->get_record('course', array('id'=>$courseid))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// frontpage course can not be deleted!!
|
||||
if ($courseid == SITEID) {
|
||||
return false;
|
||||
@ -3370,6 +3382,11 @@ function delete_course($courseid, $showfeedback = true) {
|
||||
$result = false;
|
||||
}
|
||||
|
||||
if ($result) {
|
||||
//trigger events
|
||||
events_trigger('course_deleted', $course);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
@ -5644,7 +5661,7 @@ function rc4encrypt($data) {
|
||||
*
|
||||
* @param string $data ?
|
||||
* @return string
|
||||
* @todo Finish documenting this function
|
||||
* @todo Finish documenting this function
|
||||
*/
|
||||
function rc4decrypt($data) {
|
||||
$password = 'nfgjeingjk';
|
||||
|
@ -73,12 +73,6 @@
|
||||
|
||||
$strpasswordchanged = get_string('passwordchanged');
|
||||
|
||||
// MDL-9983
|
||||
$eventdata = new object();
|
||||
$eventdata -> user = $USER;
|
||||
$eventdata -> newpassword = $data -> newpassword1;
|
||||
events_trigger('password_changed', $eventdata);
|
||||
|
||||
add_to_log($course->id, 'user', 'change password', "view.php?id=$USER->id&course=$course->id", "$USER->id");
|
||||
|
||||
$fullname = fullname($USER, true);
|
||||
|
@ -180,14 +180,16 @@
|
||||
}
|
||||
}
|
||||
|
||||
// reload from db
|
||||
$usernew = $DB->get_record('user', array('id'=>$user->id));
|
||||
events_trigger('user_updated', $usernew);
|
||||
|
||||
if ($USER->id == $user->id) {
|
||||
// Override old $USER session variable if needed
|
||||
$usernew = $DB->get_record('user', array('id'=>$user->id)); // reload from db
|
||||
foreach ($usernew as $variable => $value) {
|
||||
foreach ((array)$usernew as $variable => $value) {
|
||||
$USER->$variable = $value;
|
||||
}
|
||||
}
|
||||
events_trigger('user_updated', $usernew);
|
||||
|
||||
if (!$email_changed || !$CFG->emailchangeconfirmation) {
|
||||
redirect("$CFG->wwwroot/user/view.php?id=$user->id&course=$course->id");
|
||||
|
@ -99,6 +99,7 @@
|
||||
if (!$usernew->id = $DB->insert_record('user', $usernew)) {
|
||||
print_error('cannotcreateuser');
|
||||
}
|
||||
$usercreated = true;
|
||||
} else {
|
||||
if (!$DB->update_record('user', $usernew)) {
|
||||
print_error('cannotupdateuser');
|
||||
@ -118,9 +119,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MDL-9983
|
||||
events_trigger('user_updated', $usernew);
|
||||
$usercreated = false;
|
||||
}
|
||||
|
||||
//update preferences
|
||||
@ -145,10 +144,19 @@
|
||||
// save custom profile fields data
|
||||
profile_save_data($usernew);
|
||||
|
||||
// reload from db
|
||||
$usernew = $DB->get_record('user', array('id'=>$usernew->id));
|
||||
|
||||
// trigger events
|
||||
if ($usercreated) {
|
||||
events_trigger('user_created', $usernew);
|
||||
} else {
|
||||
events_trigger('user_updated', $usernew);
|
||||
}
|
||||
|
||||
if ($user->id == $USER->id) {
|
||||
// Override old $USER session variable
|
||||
$usernew = $DB->get_record('user', array('id'=>$usernew->id)); // reload from db
|
||||
foreach ($usernew as $variable => $value) {
|
||||
foreach ((array)$usernew as $variable => $value) {
|
||||
$USER->$variable = $value;
|
||||
}
|
||||
if (!empty($USER->newadminuser)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user