/** * confirmation process * * @param string $handle * @param string $key * @return boolean */ public function confirmRegister($handle, $key) { $userId = APP_User::userId($handle); if (!$userId) { return false; } $keyDB = APP_User::getSetting($userId, 'regkey'); if (!$keyDB) { return false; } if ($keyDB->value != $key) { return false; } APP_User::activate($userId); return true; }
/** * Resend the confirmation mail in case the user clicked on the link in the * login error message * * @param string $username */ public function resendConfirmationMail($username) { // fetch ID for member $username $vars = array(); $MembersModel = new MembersModel(); $member = $MembersModel->getMemberWithUsername($username); if ($member) { if ($member->Status == 'MailToConfirm') { $vars['firstname'] = MOD_crypt::AdminReadCrypted($member->Firstname); $vars['secondname'] = MOD_crypt::AdminReadCrypted($member->Secondname); $vars['lastname'] = MOD_crypt::AdminReadCrypted($member->Lastname); $vars['email'] = MOD_crypt::AdminReadCrypted($member->Email); $userId = APP_User::userId($username); if (!$userId) { return 'NoSuchMember'; } else { $View = new SignupView($this); define('DOMAIN_MESSAGE_ID', 'bewelcome.org'); // TODO: config $View->registerMail($vars, $member->id, $userId); } } else { return 'NoMailToConfirm'; } } else { return 'NoSuchMember'; } return true; }
/** * Actually run the bot * * @return nothing */ public function run() { $qry = $this->_getMessageList(); while ($msg = $qry->fetch(PDB::FETCH_OBJ)) { $receiver = new Member($msg->IdReceiver); $email = $this->getEmailAddress($receiver); $language = $receiver->getLanguagePreferenceId(); $link = false; if ($msg->broadcast_type == 'MailToConfirmReminder') { $userId = APP_User::userId($receiver->Username); if (!$userId) { continue; } $keyDB = APP_User::getSetting($userId, 'regkey'); if (!$keyDB) { continue; } $link = $this->baseuri . 'signup/confirm/' . $receiver->Username . '/' . $keyDB->value; } $subj = $this->_getBroadCastElement("BroadCast_Title_" . $msg->word, $language, $msg->Username); $text = $this->_getBroadCastElement("BroadCast_Body_" . $msg->word, $language, $msg->Username, $email, $link); if (empty($msg->EmailFrom)) { switch ($msg->broadcast_type) { case "RemindToLog": case "MailToConfirmReminder": $sender_mail = "*****@*****.**"; break; case "SuggestionReminder": $sender_mail = "*****@*****.**"; break; default: $sender_mail = "*****@*****.**"; } } else { $sender_mail = $msg->EmailFrom; } $memberPrefersHtml = true; if ($receiver->getPreference('PreferenceHtmlMails', 'Yes') == 'No') { $memberPrefersHtml = false; } if (!$this->sendEmail($subj, $sender_mail, $email, $subj, $text, $language, $memberPrefersHtml)) { $this->_updateMessageStatus($msg->IdBroadcast, 'Failed', $msg->IdReceiver); $this->log("Cannot send broadcastmessages.id=#" . $msg->IdBroadcast . " to <b>" . $msg->Username . "</b>\n \$Email=[" . $email . "] Type=[" . $msg->broadcast_type . "]"); } else { if ($msg->broadcast_type == "RemindToLog") { $this->queryDB("update members set NbRemindWithoutLogingIn=NbRemindWithoutLogingIn+1 where members.id=" . $msg->IdReceiver); } $this->_updateMessageStatus($msg->IdBroadcast, 'Sent', $msg->IdReceiver); } } $this->reportStats(); }
public function userPage($userHandle) { if (!($userId = APP_User::userId($userHandle))) { return false; } $userHandle = $this->_model->getRealHandle($userId); $groupChange = $this->getGroupChangeForm($userHandle, $userId); require 'templates/userpage.php'; }