$line) {
$fsk_line = explode(' ',trim($line));
$fsk[] = $fsk_line[1];
}
$sk = explode(' ',trim($sshkey));
return in_array($sk[1], $fsk);
}
$message = "";
if (isset($_REQUEST["username"]) && isset($_REQUEST["email"])) {
// Check the name.
$name = trim($_REQUEST["username"]);
if ($name == "")
$message .= "
fill in your desired username\n";
else {
if ($name != "" && strlen($name) < 2)
$message .= "username is too short (2 character min)\n";
if (strlen($name) > 32)
$message .= "username too long (32 character max)\n";
if (strlen($name) > 1 && !preg_match('/^[a-z][a-z0-9]{1,31}$/', $name))
$message .= "username contains invalid characters (lowercase only, must start with a letter).\n";
if (posix_getpwnam($name) || forbidden_name($name))
$message .= "sorry, the username $name is unavailable\n";
}
// Check the e-mail address.
$email = trim($_REQUEST["email"]);
if ($email == "")
$message .= "please fill in your email address";
else {
$result = SMTP::MakeValidEmailAddress($_REQUEST["email"]);
if (!$result["success"])
$message .= "invalid email address: " . htmlspecialchars($result["error"]) . "";
elseif ($result["email"] != $email)
$message .= "invalid email address. did you mean: " . htmlspecialchars($result["email"]) . "";
elseif ($name != "" && forbidden_email($email)) {
$message .= "your email is banned!
";
add_ban_info($name, $email);
}
}
if ($_REQUEST["interest"] == "")
$message .= "please explain why you're interested so we can make sure you're a real human being";
$sshkey = trim($_REQUEST["sshkey"]);
if ($sshkey == "" || mb_substr($sshkey, 0, 4) !== "ssh-")
$message .= 'ssh key required: please create one and submit the public key. '
. 'see our ssh wiki or '
. 'hop on irc and ask for help';
else {
if ($name != "" && $email != "") {
if (forbidden_sshkey($sshkey)) {
$message .= "your sshkey is banned!\n";
add_ban_info($name, $email);
}
}
}
// no validation errors
if ($message == "") {
$makeuser = "makeuser {$_REQUEST["username"]} {$_REQUEST["email"]} \"{$sshkey}\"";
$msgbody = "
username: {$_REQUEST["username"]}
email: {$_REQUEST["email"]}
reason: {$_REQUEST["interest"]}
$makeuser
";
if (mail('sudoers', 'new tilde.team signup', $msgbody)) {
echo '';
// temp. add to forbidden to prevent double signups (cleanup after user creation)
file_put_contents("/var/signups_current", $name.PHP_EOL, FILE_APPEND);
file_put_contents("/var/signups", $makeuser.PHP_EOL, FILE_APPEND);
} else {
echo '
something went wrong... please send an email to
sudoers@tilde.team with details of what happened
';
}
} else {
?>
notice:
=$message?>