示例#1
0
 /**
  * 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;
 }
示例#2
0
 /**
  * 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;
 }
示例#3
0
 /**
  * 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();
 }
示例#4
0
 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';
 }