/** * Enrol All students on a course, checks to see if all the Moodle students * are already enrolled and then enrols the students who aren't * * @param object $cm the course module * @return boolean */ public function enrol_all_students($cm) { // Get Moodle Course Object. $course = $this->get_course_data($this->turnitintooltwo->course); // Get local course members. $moodleclassmembers = $this->get_moodle_course_users($cm); // Get the user ids of who is already enrolled and remove them // from the local course members array. $tiiclassmemberships = $this->get_class_memberships($course->turnitin_cid); $turnitincomms = new turnitintooltwo_comms(); $turnitincall = $turnitincomms->initialise_api(); $membership = new TiiMembership(); $membership->setMembershipIds($tiiclassmemberships); try { $response = $turnitincall->readMemberships($membership); $readmemberships = $response->getMemberships(); foreach ($readmemberships as $readmembership) { if ($readmembership->getRole() == "Learner") { $moodleuserid = turnitintooltwo_user::get_moodle_user_id($readmembership->getUserId()); unset($moodleclassmembers[$moodleuserid]); } } } catch (Exception $e) { $turnitincomms->handle_exceptions($e, 'membercheckerror'); } // Enrol remaining unenrolled users to the course. $members = array_keys($moodleclassmembers); foreach ($members as $member) { $user = new turnitintooltwo_user($member, "Learner"); $user->join_user_to_class($course->turnitin_cid); } return true; }
public function findMemberships($membership) { try { $soap = $this->readMembershipIdsForCollection(array('groupSourcedId' => $membership->getClassId(), 'collection' => 'courseSection')); $response = new Response($this); if ($response->getStatus() == 'error') { throw new TurnitinSDKException($response->getStatusCode(), $response->getDescription()); } else { $tiiMembership = new TiiMembership(); $membershipids = array(); if (isset($soap->sourcedIdSet->sourcedId)) { if (!is_array($soap->sourcedIdSet->sourcedId)) { $soap->sourcedIdSet->sourcedId = array($soap->sourcedIdSet->sourcedId); } foreach ($soap->sourcedIdSet->sourcedId as $id) { $membershipids[] = $id; } } $tiiMembership->setMembershipIds($membershipids); $response->setMembership($tiiMembership); } return $response; } catch (SoapFault $e) { throw new TurnitinSDKException($e->faultcode, $e->faultstring, parent::getLogPath()); } }