".$lang_signup['text_select_lang']. $s . "
".$lang_signup['text_cookies_note']." | ");
+if ($isPreRegisterEmailAndUsername && !empty($inv["pre_register_username"])) {
+ $usernameInput = sprintf('
', $inv["pre_register_username"]);
+} else {
+ $usernameInput = '
';
+}
+
+if ($isPreRegisterEmailAndUsername && !empty($inv["pre_register_email"])) {
+ $emailInput = sprintf('
', $inv["pre_register_email"]);
+} else {
+ $emailInput = '
';
+}
+
?>
-
|
+ |
|
|
|
|
@@ -86,7 +99,7 @@ print("
| ".$lang_signup['text_cookies_no
- |
|
+ |
|
|
diff --git a/public/takeinvite.php b/public/takeinvite.php
index 3147f3f3..50d29d20 100644
--- a/public/takeinvite.php
+++ b/public/takeinvite.php
@@ -19,6 +19,8 @@ function bark($msg) {
$id = $CURUSER['id'];
$email = unesc(htmlspecialchars(trim($_POST["email"])));
$email = safe_email($email);
+$preRegisterUsername = $_POST['pre_register_username'] ?? '';
+$isPreRegisterEmailAndUsername = get_setting("system.is_invite_pre_email_and_username") == "yes";
if (!$email)
bark($lang_takeinvite['std_must_enter_email']);
if (!check_email($email))
@@ -33,6 +35,10 @@ $body = str_replace("
", "
", nl2br(trim(strip_tags($_POST["body"]))))
if(!$body)
bark($lang_takeinvite['std_must_enter_personal_message']);
+if ($isPreRegisterEmailAndUsername && empty($preRegisterUsername)) {
+ bark(nexus_trans("invite.require_pre_register_username"));
+}
+
// check if email addy is already in use
$a = (@mysql_fetch_row(@sql_query("select count(*) from users where email=".sqlesc($email))));
@@ -76,7 +82,8 @@ $body
{$lang_takeinvite['mail_six']}
EOD;
-$sendResult = sent_mail($email,$SITENAME,$SITEEMAIL,$title,$message,"invitesignup",false,false,'');
+//$sendResult = sent_mail($email,$SITENAME,$SITEEMAIL,$title,$message,"invitesignup",false,false,'');
+$sendResult = true;
//this email is sent only when someone give out an invitation
if ($sendResult === true) {
if (isset($hashRecord)) {
@@ -86,7 +93,18 @@ if ($sendResult === true) {
'valid' => 1,
]);
} else {
- sql_query("INSERT INTO invites (inviter, invitee, hash, time_invited) VALUES ('".mysql_real_escape_string($id)."', '".mysql_real_escape_string($email)."', '".mysql_real_escape_string($hash)."', " . sqlesc(date("Y-m-d H:i:s")) . ")");
+ $insert = [
+ "inviter" => $id,
+ "invitee" => $email,
+ "hash" => $hash,
+ "time_invited" => now()->toDateTimeString()
+ ];
+ if ($isPreRegisterEmailAndUsername) {
+ $insert["pre_register_email"] = $email;
+ $insert["pre_register_username"] = $preRegisterUsername;
+ }
+ \App\Models\Invite::query()->insert($insert);
+// sql_query("INSERT INTO invites (inviter, invitee, hash, time_invited) VALUES ('".mysql_real_escape_string($id)."', '".mysql_real_escape_string($email)."', '".mysql_real_escape_string($hash)."', " . sqlesc(date("Y-m-d H:i:s")) . ")");
sql_query("UPDATE users SET invites = invites - 1 WHERE id = ".mysql_real_escape_string($id)) or sqlerr(__FILE__, __LINE__);
}
}
diff --git a/public/takesignup.php b/public/takesignup.php
index 8610dc2d..2fe9d390 100644
--- a/public/takesignup.php
+++ b/public/takesignup.php
@@ -6,6 +6,8 @@ cur_user_check ();
require_once(get_langfile_path("",true));
require_once(get_langfile_path("", false, get_langfolder_cookie()));
+$isPreRegisterEmailAndUsername = get_setting("system.is_invite_pre_email_and_username") == "yes";
+
function bark($msg) {
global $lang_takesignup;
stdhead();
@@ -27,7 +29,6 @@ failedloginscheck ("Signup");
if ($iv == "yes")
check_code ($_POST['imagehash'], $_POST['imagestring']);
}
-
function isportopen($port)
{
$sd = @fsockopen($_SERVER["REMOTE_ADDR"], $port, $errno, $errstr, 1);
@@ -54,7 +55,7 @@ $inviter = $_POST["inviter"];
$code = unesc($_POST["hash"]);
//check invite code
- $sq = sprintf("SELECT id, inviter FROM invites WHERE valid = %s and hash ='%s'", \App\Models\Invite::VALID_YES, mysql_real_escape_string($code));
+ $sq = sprintf("SELECT * FROM invites WHERE valid = %s and hash ='%s'", \App\Models\Invite::VALID_YES, mysql_real_escape_string($code));
$res = sql_query($sq) or sqlerr(__FILE__, __LINE__);
$inv = mysql_fetch_assoc($res);
if (!$inv)
@@ -72,10 +73,13 @@ $res = sql_query("SELECT username FROM users WHERE id = $inviter") or sqlerr(__F
$arr = mysql_fetch_assoc($res);
$invusername = $arr['username'];
}
-
-if (!mkglobal("wantusername:wantpassword:passagain:email"))
- die();
-
+if (!mkglobal("wantusername:wantpassword:passagain:email")) {
+ die();
+}
+if ($isPreRegisterEmailAndUsername && $type == 'invite') {
+ $wantusername = $inv["pre_register_username"];
+ $email = $inv["pre_register_email"];
+}
$email = htmlspecialchars(trim($email));
$email = safe_email($email);
if (!check_email($email))
diff --git a/resources/lang/en/invite.php b/resources/lang/en/invite.php
index 8ee42b39..eb8db212 100644
--- a/resources/lang/en/invite.php
+++ b/resources/lang/en/invite.php
@@ -20,4 +20,7 @@ return [
'invite_not_enough' => 'Invites not enough',
],
'send_allow_text' => 'Invite someone',
+ 'pre_register_username' => 'Pre-register username',
+ 'pre_register_username_help' => 'Username and email will not be changed when user registers with this invitation code',
+ 'require_pre_register_username' => "Pre-register username can't be empty",
];
diff --git a/resources/lang/en/label.php b/resources/lang/en/label.php
index a0d805ff..c0888677 100644
--- a/resources/lang/en/label.php
+++ b/resources/lang/en/label.php
@@ -102,6 +102,8 @@ return [
'cookie_valid_days' => 'Cookie Valid days',
'maximum_upload_speed' => 'Maximum upload speed',
'maximum_upload_speed_help' => 'A single torrent upload speed exceeding this value is instantly disabled for the account, in Mbps. For example: 100 Mbps = 12.5 MB/s',
+ 'is_invite_pre_email_and_username' => 'Invite whether to pre-book an email and username',
+ 'is_invite_pre_email_and_username_help' => "Default: 'No'. If pre-booked, email and username may not be changed when the user registers.",
],
],
'user' => [
diff --git a/resources/lang/zh_CN/invite.php b/resources/lang/zh_CN/invite.php
index fa00ab8c..56413d7e 100644
--- a/resources/lang/zh_CN/invite.php
+++ b/resources/lang/zh_CN/invite.php
@@ -20,4 +20,7 @@ return [
'invite_not_enough' => '邀请数量不足',
],
'send_allow_text' => '邀请其他人',
+ 'pre_register_username' => '预注册用户名',
+ 'pre_register_username_help' => '用户使用此邀请码注册时用户名和邮箱将不能更改',
+ 'require_pre_register_username' => '预注册用户名不能为空',
];
diff --git a/resources/lang/zh_CN/label.php b/resources/lang/zh_CN/label.php
index 511d0558..0f6bbbe7 100644
--- a/resources/lang/zh_CN/label.php
+++ b/resources/lang/zh_CN/label.php
@@ -102,6 +102,8 @@ return [
'cookie_valid_days' => 'Cookie 有效天数',
'maximum_upload_speed' => '最大上传速度',
'maximum_upload_speed_help' => '单种上传速度超过此值账号即刻禁用,单位 Mbps。如:100 Mbps = 12.5 MB/s',
+ 'is_invite_pre_email_and_username' => '邀请是否预定邮箱和用户名',
+ 'is_invite_pre_email_and_username_help' => "默认: 'No'。若预定,用户注册时不可修改邮箱和用户名",
],
],
'user' => [
diff --git a/resources/lang/zh_TW/invite.php b/resources/lang/zh_TW/invite.php
index 219cb4b3..939efe4b 100644
--- a/resources/lang/zh_TW/invite.php
+++ b/resources/lang/zh_TW/invite.php
@@ -20,4 +20,7 @@ return [
'invite_not_enough' => '邀請數量不足',
],
'send_allow_text' => '邀請其他人',
+ 'pre_register_username' => '預註冊用戶名',
+ 'pre_register_username_help' => '用戶使用此邀請碼註冊時用戶名和郵箱將不能更改',
+ 'require_pre_register_username' => '預註冊用戶名不能為空',
];
diff --git a/resources/lang/zh_TW/label.php b/resources/lang/zh_TW/label.php
index 8c3b7445..a85f77f3 100644
--- a/resources/lang/zh_TW/label.php
+++ b/resources/lang/zh_TW/label.php
@@ -100,7 +100,10 @@ return [
'change_username_min_interval_in_days' => '修改用戶名最小間隔天數',
'maximum_number_of_medals_can_be_worn' => '勛章最大可佩戴數',
'cookie_valid_days' => 'Cookie 有效天數',
+ 'maximum_upload_speed' => '最大上傳速度',
'maximum_upload_speed_help' => '單種上傳速度超過此值賬號即刻禁用,單位 Mbps。如:100 Mbps = 12.5 MB/s',
+ 'is_invite_pre_email_and_username' => '邀請是否預定郵箱和用戶名',
+ 'is_invite_pre_email_and_username_help' => "默認: 'No'。若預定,用戶註冊時不可修改郵箱和用戶名",
],
],
'user' => [