Esempio n. 1
0
 /**
  * Get the notification preferences for a given user.
  *
  * @param int $userid id of the user, 0 for current user
  * @return external_description
  * @throws moodle_exception
  * @since 3.2
  */
 public static function get_user_notification_preferences($userid = 0)
 {
     global $PAGE;
     $params = self::validate_parameters(self::get_user_notification_preferences_parameters(), array('userid' => $userid));
     $user = self::validate_preferences_permissions($params['userid']);
     $processors = get_message_processors();
     $providers = message_get_providers_for_user($user->id);
     $preferences = \core_message\api::get_all_message_preferences($processors, $providers, $user);
     $notificationlist = new \core_message\output\preferences\notification_list($processors, $providers, $preferences, $user);
     $renderer = $PAGE->get_renderer('core_message');
     $result = array('warnings' => array(), 'preferences' => $notificationlist->export_for_template($renderer));
     return $result;
 }
Esempio n. 2
0
 /**
  * Get the notification preferences for a given user.
  *
  * @param int $userid id of the user, 0 for current user
  * @return external_description
  * @throws moodle_exception
  * @since 3.2
  */
 public static function get_user_notification_preferences($userid = 0)
 {
     global $USER, $PAGE;
     $params = self::validate_parameters(self::get_user_notification_preferences_parameters(), array('userid' => $userid));
     if (empty($params['userid'])) {
         $user = $USER;
     } else {
         $user = core_user::get_user($params['userid'], '*', MUST_EXIST);
         core_user::require_active_user($user);
     }
     $systemcontext = context_system::instance();
     self::validate_context($systemcontext);
     // Check access control.
     if ($user->id == $USER->id) {
         // Editing own message profile.
         require_capability('moodle/user:editownmessageprofile', $systemcontext);
     } else {
         // Teachers, parents, etc.
         $personalcontext = context_user::instance($user->id);
         require_capability('moodle/user:editmessageprofile', $personalcontext);
     }
     $processors = get_message_processors();
     $providers = message_get_providers_for_user($user->id);
     $preferences = \core_message\api::get_all_message_preferences($processors, $providers, $user);
     $notificationlist = new \core_message\output\preferences\notification_list($processors, $providers, $preferences, $user);
     $renderer = $PAGE->get_renderer('core_message');
     $result = array('warnings' => array(), 'preferences' => $notificationlist->export_for_template($renderer));
     return $result;
 }