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; }
//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;
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; }