/**
  * 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);
     }
 }
Beispiel #2
0
/**
 * 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;
}