/** * Add new users to database * * @param string $email * @param string $name * @param string $password * @param string $website * @param string $isgroup 'Y'/'N' * @param string $authtype * @param string $description * @param string $status * @param string $photo * @return User object (this) (or Error object) */ function add($email, $name, $password, $website, $isgroup = "N", $authtype = "", $description = "", $status = "", $photo = "") { global $DB, $CFG, $HUB_SQL; $params = array(); if ($isgroup == 'N') { $lasttestgroup = $DB->select($HUB_SQL->DATAMODEL_USER_LAST_TEST_GROUP, $params); } if ($isgroup == 'Y' || $lasttestgroup !== false && isset($lasttestgroup[0]['TestGroup'])) { $dt = time(); // If no authtype passed, set to default value if ($authtype == "") { $authtype = $CFG->AUTH_TYPE_EVHUB; } // if no status passed then set to default status // must be === otherwise status of 0=active will match if ($status === "") { $status = $CFG->USER_STATUS_UNVALIDATED; } // If no photo passed then set to the default one if ($photo == "") { if ($isgroup == 'Y') { $photo = $CFG->DEFAULT_GROUP_PHOTO; } else { $photo = $CFG->DEFAULT_USER_PHOTO; } } $this->userid = getUniqueID(); $registrationKey = createRegistrationKey(); $passwordcrypt = ""; if ($authtype == $CFG->AUTH_TYPE_EVHUB && $password != "") { $passwordcrypt = crypt($password); } $testGroup = 0; if ($isgroup == 'N') { $testGroup = 1; if ($lasttestgroup[0]['TestGroup'] == 1) { $testGroup = 2; } } $params[0] = $this->userid; $params[1] = $dt; $params[2] = $dt; $params[3] = $email; $params[4] = $name; $params[5] = $passwordcrypt; $params[6] = $website; $params[7] = 'N'; $params[8] = $dt; $params[9] = 'N'; $params[10] = $isgroup; $params[11] = $authtype; $params[12] = $description; $params[13] = $photo; $params[14] = $registrationKey; $params[15] = $status; $params[16] = $testGroup; $res = $DB->insert($HUB_SQL->DATAMODEL_USER_ADD, $params); if (!$res) { return database_error(); } else { $this->load(); // add the default roles for user $r = new Role(); $r->setUpDefaultRoles($this->userid); // add default links for user. $lt = new LinkType(); $lt->setUpDefaultLinkTypes($this->userid); // set email activity $this->updateFollowSendEmail($CFG->ACTIVITY_EMAIL_SENDING_ON); $this->updateFollowRunInterval($CFG->ACTIVITY_EMAIL_SENDING_INTERVAL); // add default node for user //$n = new CNode(); //$n->setUpDefaultUserNode($this->userid); return $this; } } else { return database_error(); } }