コード例 #1
0
 public function createNewUser($pass, $verifymail = true)
 {
     if (self::usernameExists()) {
         $this->error = "Error creating user (CODE 001)";
         // Don't create a user if they already exist!
         return false;
     }
     if (empty($pass)) {
         $this->error = "Error creating user (CODE 002)";
         // Missing password
         return false;
     }
     // Salt and Hash password
     //$salt = generateRandomString(25, true);
     $password_salt_hash = generateHash($pass);
     //logIt("Hashing $pass with $salt to yield $password_hash","DEBUG");
     $data = array(REDCAP_FIRST_FIELD => $this->next_user_id, getRF('username') => $this->username, getRF('password') => $password_salt_hash, getRF('firstname') => ucfirst($this->firstname), getRF('lastname') => $this->lastname, getRF('zip') => $this->zip, getRF('city') => $this->city, getRF('state') => $this->state, getRF('age') => $this->age, getRF('email') => $this->email, getRF('created_ts') => date('Y-m-d H:i:s'));
     // Add event if longitudinal
     if (REDCAP_PORTAL_EVENT !== NULL) {
         $data['redcap_event_name'] = REDCAP_PORTAL_EVENT;
     }
     logIt("CREATE NEW USER WITH DATA:" . print_r($data, true), "DEBUG");
     $result = RC::writeToApi($data, array('returnContent' => 'ids'));
     $new_user_id = is_array($result) ? current($result) : null;
     if (is_numeric($new_user_id)) {
         $this->new_user_id = $new_user_id;
         if ($verifymail) {
             $newuser = new RedcapPortalUser($new_user_id);
             $newuser->createEmailToken();
             $newuser->emailEmailToken();
         }
     } else {
         logIt("Error creating new user: "******"ERROR");
         $this->error = "Error creating user via API";
     }
     logIt("CREATE NEW USER RESULT:" . json_encode($result), "DEBUG");
     return $new_user_id;
 }
コード例 #2
0
ファイル: profile.php プロジェクト: susom/redcap-API-portal
    //ADD OVERIDE PARAMETER
    $formdata = $_POST;
    $data = array();
    foreach ($_POST as $field_name => $value) {
        if ($value === 0) {
            $value = "0";
        }
        if ($value == "") {
            $value = NULL;
        }
        $field_name = $redcap_field_map[$field_name];
        //SET IT IN THE SESSION
        $_SESSION[SESSION_NAME]["user"]->{$field_name} = $value;
        $data[] = array("record" => $_SESSION[SESSION_NAME]["user"]->id, "redcap_event_name" => $_SESSION[SESSION_NAME]["survey_context"]["event"], "field_name" => $field_name, "value" => $value);
    }
    $result = RC::writeToApi($data, array("overwriteBehavior" => "overwite", "type" => "eav"));
    echo json_encode($data);
    exit;
}
//REDIRECT USERS THAT ARE NOT LOGGED IN
if (!isUserLoggedIn()) {
    $destination = $websiteUrl . "login.php";
    header("Location: " . $destination);
    exit;
} else {
    //if they are logged in and active
    //find survey completion and go there?
    // GET SURVEY LINKS
    include "../models/inc/surveys.php";
}
$shownavsmore = true;
コード例 #3
0
 function updateUser($data = array(), $extra_params = array(), $flushLog = true)
 {
     // Add record ID if not already there
     $data[REDCAP_FIRST_FIELD] = $this->user_id;
     // Add event if longitudinal
     if (REDCAP_PORTAL_EVENT !== NULL) {
         $data['redcap_event_name'] = REDCAP_PORTAL_EVENT;
     }
     logIt("updateUser data1:" . print_r($data, true), "DEBUG");
     if ($flushLog && count($this->log_entry > 0)) {
         $newLog = array(getRF('log') => implode("\n", $this->log_entry));
         $data = array_merge($data, $newLog);
         //$this->log_entry = array();
     }
     //logIt("updateUser data2:".print_r($data,true), "DEBUG");
     $result = RC::writeToApi($data, $extra_params);
     if (isset($result['error'])) {
         logIt('Error updating User: '******'error'] . " with: " . print_r($data, true));
         return false;
     }
     //logIt("updateUser result:".print_r($result,true), "DEBUG");
     // Flush the log
     if ($flushLog) {
         $this->log_entry = array();
     }
     // Reload the session user from the API
     self::refreshUser();
     return true;
     //$result;
 }