/** * Get list of users attending a given session * * @access public * @param integer Session ID * @param array $status Array of statuses to include * @return array */ function facetoface_get_attendees($sessionid, $status = array(MDL_F2F_STATUS_BOOKED, MDL_F2F_STATUS_WAITLISTED)) { global $DB,$USER; list($statussql, $statusparams) = $DB->get_in_or_equal($status); $sql = "SELECT u.id, su.id AS submissionid, u.firstname, u.lastname, u.email, s.discountcost, su.discountcode, su.notificationtype, f.id AS facetofaceid, f.course, ss.grade, ss.statuscode, ( SELECT MIN(timecreated) FROM {facetoface_signups_status} ss2 WHERE ss2.signupid = ss.signupid AND ss2.statuscode IN (?, ?) ) as timesignedup, ss.timecreated FROM {facetoface} f JOIN {facetoface_sessions} s ON s.facetoface = f.id JOIN {facetoface_signups} su ON s.id = su.sessionid JOIN {facetoface_signups_status} ss ON su.id = ss.signupid JOIN {user} u ON u.id = su.userid WHERE s.id = ? AND ss.statuscode {$statussql} AND ss.superceded != 1"; if (!is_siteadmin()) { if(is_trainingmanager()) $costcenterid = $DB->get_field('local_costcenter_permissions','costcenterid',array('userid'=>$USER->id)); else $costcenterid = $DB->get_field('local_userdata','costcenterid',array('userid'=>$USER->id)); $users_list = $DB->get_fieldset_sql('select userid from {local_userdata} where position='.$costcenterid.''); $useridin = implode(',',$users_list); if(!empty($users_list)) $sql .= " AND u.id in($useridin)"; } $sql .=" ORDER BY ss.timecreated ASC"; $params = array_merge(array(MDL_F2F_STATUS_BOOKED, MDL_F2F_STATUS_WAITLISTED, $sessionid), $statusparams); $records = $DB->get_records_sql($sql, $params); return $records; }
* - Show only attendees who are also the manager's staff * - Show only staff awaiting approval * - Show any staff who have cancelled * - Shouldn't throw an error if there are previously declined attendees */ // Allowed actions are actions the user has permissions to do $allowed_actions = array(); $can_view_session =false; if(is_siteadmin()) $can_view_session = true; elseif(is_teammanager()) $can_view_session = true; elseif(is_reportingmanager()) $can_view_session = true; elseif(is_trainingmanager()) $can_view_session = true; elseif(is_odmanager()) $can_view_session = true; else{ if (!$can_view_session) { $return = new moodle_url('/mod/facetoface/view.php', array('f' => $facetoface->id)); redirect($return); die(); } } // Available actions are actions that have a point. e.g. view the cancellations page whhen there are no cancellations is not an "available" action, but it maybe be an "allowed" action $available_actions = array(); $context = context_course::instance($course->id); $contextmodule = context_module::instance($cm->id);