diff --git a/lang/en/moodle.php b/lang/en/moodle.php index 3c5435c2cee..fc4db6001a7 100644 --- a/lang/en/moodle.php +++ b/lang/en/moodle.php @@ -710,6 +710,7 @@ $string['eventcourseupdated'] = 'Course updated'; $string['eventcoursesectionupdated'] = ' Course section updated'; $string['eventusercreated'] = 'User created'; $string['eventuserdeleted'] = 'User deleted'; +$string['eventuserlistviewed'] = 'User list viewed'; $string['eventuserloggedout'] = 'User logged out'; $string['eventuserprofileviewed'] = 'User profile viewed'; $string['eventuserupdated'] = 'User updated'; diff --git a/lib/classes/event/user_list_viewed.php b/lib/classes/event/user_list_viewed.php new file mode 100644 index 00000000000..45aa787c802 --- /dev/null +++ b/lib/classes/event/user_list_viewed.php @@ -0,0 +1,76 @@ +. + +/** + * Defines the user list viewed event. + * + * @package core + * @copyright 2013 Mark Nelson + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace core\event; + +defined('MOODLE_INTERNAL') || die(); + +class user_list_viewed extends \core\event\base { + + /** + * Initialise required event data properties. + */ + protected function init() { + $this->data['objecttable'] = 'course'; + $this->data['crud'] = 'r'; + $this->data['level'] = self::LEVEL_OTHER; + } + + /** + * Returns localised event name. + * + * @return string + */ + public static function get_name() { + return get_string('eventuserlistviewed'); + } + + /** + * Returns non-localised event description with id's for admin use only. + * + * @return string + */ + public function get_description() { + return 'User ' . $this->userid . ' viewed the list of users in the course ' . $this->other['courseid']; + } + + /** + * Returns relevant URL. + * + * @return \moodle_url + */ + public function get_url() { + return new \moodle_url('/user/index.php', array('id' => $this->other['courseid'])); + } + + /** + * Returns array of parameters to be passed to legacy add_to_log() function. + * + * @return array + */ + protected function get_legacy_logdata() { + return array($this->other['courseid'], 'user', 'view all', 'index.php?id=' . $this->other['courseid'], ''); + } + +} diff --git a/user/index.php b/user/index.php index c6029b1cee1..dc0984f6f21 100644 --- a/user/index.php +++ b/user/index.php @@ -86,7 +86,16 @@ } } - add_to_log($course->id, 'user', 'view all', 'index.php?id='.$course->id, ''); + $event = \core\event\user_list_viewed::create(array( + 'context' => $context, + 'objectid' => $course->id, + 'other' => array( + 'courseid' => $course->id, + 'courseshortname' => $course->shortname, + 'coursefullname' => $course->fullname + ) + )); + $event->trigger(); $bulkoperations = has_capability('moodle/course:bulkmessaging', $context);