/** * Get the users from Turnitin for the specified role, gets the memberships * and loops through them to get each user * * @param string $role the user has in the class * @return array $users */ public function get_tii_users_by_role($role = "Learner") { global $DB; $users = array(); // Get Moodle Course Object. $course = $this->get_course_data($this->turnitintooltwo->course); $classmembers = $this->get_class_memberships($course->turnitin_cid); $turnitincomms = new turnitintooltwo_comms(); $turnitincall = $turnitincomms->initialise_api(); $membership = new TiiMembership(); $membership->setMembershipIds($classmembers); // Get Enrolled users from Turnitin. try { $response = $turnitincall->readMemberships($membership); $readmemberships = $response->getMemberships(); } catch (Exception $e) { $turnitincomms->handle_exceptions($e, 'membercheckerror'); } // Add each user to an array. foreach ($readmemberships as $readmembership) { if ($readmembership->getRole() == $role) { // Check user is a Moodle user. otherwise we have to go to Turnitin for their name. $moodleuserid = turnitintooltwo_user::get_moodle_user_id($readmembership->getUserId()); if (!empty($moodleuserid)) { $user = $DB->get_record('user', array('id' => $moodleuserid)); $users[$readmembership->getUserId()]["firstname"] = $user->firstname; $users[$readmembership->getUserId()]["lastname"] = $user->lastname; $users[$readmembership->getUserId()]["membership_id"] = $readmembership->getMembershipId(); } else { $user = new TiiUser(); $user->setUserId($readmembership->getUserId()); try { $response = $turnitincall->readUser($user); $readuser = $response->getUser(); $users[$readmembership->getUserId()]["firstname"] = $readuser->getFirstName(); $users[$readmembership->getUserId()]["lastname"] = $readuser->getLastName(); $users[$readmembership->getUserId()]["membership_id"] = $readmembership->getMembershipId(); } catch (Exception $e) { // A read user exception occurs when users are inactive. Re-enrol user to make them active. $membership = new TiiMembership(); $membership->setClassId($course->turnitin_cid); $membership->setUserId($readmembership->getUserId()); $membership->setRole($role); try { $turnitincall->createMembership($membership); } catch (InnerException $e) { // Ignore excepion. } try { $user = new TiiUser(); $user->setUserId($readmembership->getUserId()); $response = $turnitincall->readUser($user); $readuser = $response->getUser(); $users[$readmembership->getUserId()]["firstname"] = $readuser->getFirstName(); $users[$readmembership->getUserId()]["lastname"] = $readuser->getLastName(); $users[$readmembership->getUserId()]["membership_id"] = $readmembership->getMembershipId(); } catch (InnerException $e) { $turnitincomms->handle_exceptions($e, 'tiiusergeterror'); } } } } } return $users; }
/** * Get whether the student has accepted the Turnitin User agreement * * @return boolean */ public function get_accepted_user_agreement() { global $DB; $turnitincomms = new turnitintooltwo_comms(); $turnitincall = $turnitincomms->initialise_api(); $user = new TiiUser(); $user->setUserId($this->tii_user_id); try { $response = $turnitincall->readUser($user); $readuser = $response->getUser(); if ($readuser->getAcceptedUserAgreement()) { $turnitintooltwouser = $DB->get_record('turnitintooltwo_users', array('userid' => $this->id)); $tii_userinfo = new stdClass(); $tii_userinfo->id = $turnitintooltwouser->id; $tii_userinfo->user_agreement_accepted = 1; $DB->update_record('turnitintooltwo_users', $tii_userinfo); return true; } else { return false; } } catch (Exception $e) { // User may not be joined to account so we'll join them and recall function $this->set_user_values_from_tii(); $this->get_accepted_user_agreement(); // $turnitincomms->handle_exceptions($e, 'tiiusergeterror'); } }
/** * Create a new Instructor User on Turnitin. * * Takes a {@link TiiUser.html TiiUser} or a * {@link TiiPseudoUser.html TiiPseudoUser} object containing the required parameters * and returns a {@link Response.html Response} object containing the data from the response. * * Convenience method that adds the Instructor role (see: {@link TurnitinAPI.html#createUser createUser}) * * @param TiiUser $user * @return Response */ public function createInstructorUser($user) { $userSoap = $this->setOptions(new UserSoap($this->personwsdl, $this->getServiceOptions('person'))); $user->setDefaultRole('Instructor'); return $userSoap->createUser($user); }
/** * Get the users from Turnitin for the specified role, gets the memberships * and loops through them to get each user * * @param string $role the user has in the class * @return array $users */ public function get_tii_users_by_role($role = "Learner") { $users = array(); // Get Moodle Course Object. $course = $this->get_course_data($this->turnitintooltwo->course); $classmembers = $this->get_class_memberships($course->turnitin_cid); $turnitincomms = new turnitintooltwo_comms(); $turnitincall = $turnitincomms->initialise_api(); $membership = new TiiMembership(); $membership->setMembershipIds($classmembers); // Get Enrolled users from Turnitin. try { $response = $turnitincall->readMemberships($membership); $readmemberships = $response->getMemberships(); } catch (Exception $e) { $turnitincomms->handle_exceptions($e, 'membercheckerror'); } // Add each user to an array. foreach ($readmemberships as $readmembership) { if ($readmembership->getRole() == $role) { $user = new TiiUser(); $user->setUserId($readmembership->getUserId()); try { $response = $turnitincall->readUser($user); $readuser = $response->getUser(); $users[$readmembership->getUserId()]["firstname"] = $readuser->getFirstName(); $users[$readmembership->getUserId()]["lastname"] = $readuser->getLastName(); $users[$readmembership->getUserId()]["membership_id"] = $readmembership->getMembershipId(); } catch (Exception $e) { // A read user exception occurs when users are inactive. Re-enrol user to make them active. $membership = new TiiMembership(); $membership->setClassId($course->turnitin_cid); $membership->setUserId($readmembership->getUserId()); $membership->setRole($role); try { $turnitincall->createMembership($membership); $user = new TiiUser(); $user->setUserId($readmembership->getUserId()); $response = $turnitincall->readUser($user); $readuser = $response->getUser(); $users[$readmembership->getUserId()]["firstname"] = $readuser->getFirstName(); $users[$readmembership->getUserId()]["lastname"] = $readuser->getLastName(); $users[$readmembership->getUserId()]["membership_id"] = $readmembership->getMembershipId(); } catch (InnerException $e) { $turnitincomms->handle_exceptions($e, 'tiiusergeterror'); } } } } return $users; }
public function findUser($user) { try { $request = array('queryObject' => $user->getEmail()); $soap = $this->discoverPersonIds($request); $response = new Response($this); if ($response->getStatus() == 'error') { throw new TurnitinSDKException($response->getStatusCode(), $response->getDescription()); } else { $tiiUser = new TiiUser(); if (isset($soap->sourcedIdSet->sourcedId)) { $tiiUser->setUserId($soap->sourcedIdSet->sourcedId); } $response->setUser($tiiUser); } return $response; } catch (SoapFault $e) { throw new TurnitinSDKException($e->faultcode, $e->faultstring, parent::getLogPath()); } }