/** * Create the user on Turnitin * * @param object $user_details A data object for the user * @param var $role user role to create * @return var Turnitin user id */ private function create_tii_user() { $config = turnitintooltwo_admin_config(); $tiiuserid = null; $turnitincomms = new turnitintooltwo_comms(); $turnitincall = $turnitincomms->initialise_api(); // Convert the email, firstname and lastname to psuedos for students if the option is set in config // Unless the user is already logged as a tutor then use real details. if (!empty($config->enablepseudo) && $this->role == "Learner") { $user = new TiiPseudoUser($this->get_pseudo_domain()); $user->setPseudoSalt($config->pseudosalt); $user->setFirstName($this->get_pseudo_firstname()); $user->setLastName($this->get_pseudo_lastname()); } else { $user = new TiiUser(); $user->setFirstName($this->firstname); $user->setLastName($this->lastname); } $user->setEmail($this->email); $user->setDefaultRole($this->role); try { $response = $turnitincall->createUser($user); $newuser = $response->getUser(); $tiiuserid = $newuser->getUserId(); turnitintooltwo_activitylog("Turnitin User created: " . $this->id . " (" . $tiiuserid . ")", "REQUEST"); return $tiiuserid; } catch (Exception $e) { $toscreen = $this->workflowcontext == "cron" ? false : true; $turnitincomms->handle_exceptions($e, 'usercreationerror', $toscreen); } }
/** * Get users for unlinking/relinking. Called from ajax.php via turnitintooltwo.js. * * @global type $DB * @return array return array of users to display */ function turnitintooltwo_getusers() { global $DB; $config = turnitintooltwo_admin_config(); $return = array(); $idisplaystart = optional_param('iDisplayStart', 0, PARAM_INT); $idisplaylength = optional_param('iDisplayLength', 10, PARAM_INT); $secho = optional_param('sEcho', 1, PARAM_INT); $displaycolumns = array('tu.userid', 'tu.turnitin_uid', 'mu.lastname', 'mu.firstname', 'mu.email'); $queryparams = array(); // Add sort to query. $isortcol[0] = optional_param('iSortCol_0', null, PARAM_INT); $isortingcols = optional_param('iSortingCols', 0, PARAM_INT); $queryorder = ""; if (!is_null($isortcol[0])) { $queryorder = " ORDER BY "; $startorder = $queryorder; for ($i = 0; $i < intval($isortingcols); $i++) { $isortcol[$i] = optional_param('iSortCol_' . $i, null, PARAM_INT); $bsortable[$i] = optional_param('bSortable_' . $isortcol[$i], null, PARAM_TEXT); $ssortdir[$i] = optional_param('sSortDir_' . $i, null, PARAM_TEXT); if ($bsortable[$i] == "true") { $queryorder .= $displaycolumns[$isortcol[$i]] . " " . $ssortdir[$i] . ", "; } } if ($queryorder == $startorder) { $queryorder = ""; } else { $queryorder = substr_replace($queryorder, "", -2); } } // Add search to query. $ssearch = optional_param('sSearch', '', PARAM_TEXT); $querywhere = ' WHERE ( '; for ($i = 0; $i < count($displaycolumns); $i++) { $bsearchable[$i] = optional_param('bSearchable_' . $i, null, PARAM_TEXT); if (!is_null($bsearchable[$i]) && $bsearchable[$i] == "true" && $ssearch != '') { $include = true; if ($i <= 1) { if (!is_int($ssearch) || is_null($ssearch)) { $include = false; } } if ($include) { $querywhere .= $DB->sql_like($displaycolumns[$i], ':search_term_' . $i, false) . " OR "; $queryparams['search_term_' . $i] = '%' . $ssearch . '%'; } } } if ($querywhere == ' WHERE ( ') { $querywhere = ""; } else { $querywhere = substr_replace($querywhere, "", -3); $querywhere .= " )"; } $query = "SELECT tu.id AS id, tu.userid AS userid, tu.turnitin_uid AS turnitin_uid, tu.turnitin_utp AS turnitin_utp, " . "mu.firstname AS firstname, mu.lastname AS lastname, mu.email AS email " . "FROM {turnitintooltwo_users} tu " . "LEFT JOIN {user} mu ON tu.userid = mu.id " . $querywhere . $queryorder; $users = $DB->get_records_sql($query, $queryparams, $idisplaystart, $idisplaylength); $totalusers = count($DB->get_records_sql($query, $queryparams)); $return["aaData"] = array(); foreach ($users as $user) { $checkbox = html_writer::checkbox('userids[]', $user->id, false, '', array("class" => "browser_checkbox")); $pseudoemail = ""; if (!empty($config->enablepseudo)) { $pseudouser = new TiiPseudoUser(turnitintooltwo_user::get_pseudo_domain()); $pseudouser->setEmail($user->email); $pseudoemail = $pseudouser->getEmail(); } $return["aaData"][] = array($checkbox, $user->turnitin_uid == 0 ? '' : $user->turnitin_uid, format_string($user->lastname), format_string($user->firstname), $pseudoemail); } $return["sEcho"] = $secho; $return["iTotalRecords"] = count($users); $return["iTotalDisplayRecords"] = $totalusers; return $return; }