error(T('Sorry, you are already registered.')); } if (!bugdar::$options['allownewreg']) { $message->error(T('Sorry, we don\'t allow new registrations.')); } if ($input->in['email'] != $input->in['confirmemail']) { $message->addError(T('The emails you entered do not match.')); } if ($input->in['password'] != $input->in['confirmpassword']) { $message->addError(T('The passwords you entered did not match.')); } if (bugdar::$options['verifyemail']) { $usergroupid = 3; } else { if (bugdar::$options['moderatenewusers']) { $usergroupid = 4; } else { $usergroupid = 2; } } $user = new UserAPI(); $user->set('email', $input->in['email']); $user->set('displayname', $input->in['displayname']); $user->set('password', $input->in['password']); $user->set('showemail', $input->in['showemail']); $user->set('showcolors', 1); $user->set('languageid', $input->in['languageid']); $user->set('timezone', bugdar::$options['defaulttimezone']); $user->set('usergroupid', $usergroupid); if (!$message->hasErrors()) { $user->insert(); $userid = $user->insertid; // Verify email address if ($usergroupid == 3) { $activationid = BSFunctions::random(25); $db->query("INSERT INTO " . TABLE_PREFIX . "useractivation (userid, activator, dateline, usergroupid) VALUES ($userid, '$activationid', " . TIMENOW . ", 2)"); $email = get_email_text('activate_account'); $mail = new BSMail(); $mail->setSubject($email['subject']); $mail->setBodyText(sprintf($email['bodyText'], $input->in['displayname'], bugdar::$options['trackertitle'], bugdar::$options['trackerurl'], $userid, $activationid)); $mail->setFromAddress(MAIL_FROM_ADDRESS); $mail->setFromName(MAIL_FROM_NAME); $mail->send($input->in['email'], $input->in['displayname']); $message->message(T('You now need to activate your account via email.')); } else if ($usergroupid == 4 OR $usergroupid == 2) { if (bugdar::$options['sendwelcomemail']) { $displayName = $input->in['displayname']; $email = get_email_text('welcome'); $mail = new BSMail(); $mail->setSubject($email['subject']); $mail->setBodyText(sprintf($email['bodyText'], $input->in['displayname'], bugdar::$options['trackertitle'])); $mail->setFromAddress(MAIL_FROM_ADDRESS); $mail->setFromName(MAIL_FROM_NAME); $mail->send($input->in['email'], $input->in['displayname']); } if ($usergroupid == 4) { $message->message(T('Your account is pending approval.')); } else { $message->message(T('Thank you for registering. You may now use your account.')); } } } else { $_REQUEST['do'] = ''; $show['errors'] = true; } } // ################################################################### if (empty($_REQUEST['do'])) { if (bugdar::$userinfo['userid']) { $message->error(T('Sorry, you are already registered.')); } if (!bugdar::$options['allownewreg']) { $message->error(T('Sorry, we don\'t allow new registrations.')); } foreach (bugdar::$datastore['language'] as $value => $temp) { $tpl = new BSTemplate('selectoption'); $tpl->vars = array( 'value' => $value, 'label' => $temp['title'], 'selected' => ($value == $input->in['languageid']) ); $opts .= $tpl->evaluate()->getTemplate(); } $tpl = new BSTemplate('register'); $tpl->vars = array( 'opts' => $opts ); $tpl->evaluate()->flush(); } // ################################################################### if ($_REQUEST['do'] == 'activate') { $input->inputClean('userid', TYPE_UINT); if ($useractivation = $db->queryFirst("SELECT * FROM " . TABLE_PREFIX . "useractivation WHERE userid = " . $input->in['userid'] . " AND activator = '" . $input->inputEscape('activator') . "'")) { $user = $db->queryFirst("SELECT * FROM " . TABLE_PREFIX . "user WHERE userid = " . $input->in['userid']); $db->query("UPDATE " . TABLE_PREFIX . "user SET usergroupid = $useractivation[usergroupid] WHERE userid = " . $input->in['userid']); $db->query("DELETE FROM " . TABLE_PREFIX . "useractivation WHERE userid = " . $input->in['userid']); if (bugdar::$options['sendwelcomemail']) { $displayName = $user['displayname']; $email = get_email_text('welcome'); $mail = new BSMail(); $mail->setSubject($email['subject']); $mail->setBodyText(sprintf($email['bodyText'], $user['displayname'], bugdar::$options['trackertitle'])); $mail->setFromAddress(MAIL_FROM_ADDRESS); $mail->setFromName(MAIL_FROM_NAME); $mail->send($user['email'], $user['displayname']); } $message->message(T('Your account is now activated and you can now login.')); } else { $message->error(T('Sorry, we could not match your registration string. Please make sure you entered the correct URL.')); } } ?>