Enable conference registration
Change-Id: I5e973513d78c63a48e62ff1aa3a5d9a1621f4a4d
diff --git a/index.php b/index.php
index d4310c8..5ce87e6 100755
--- a/index.php
+++ b/index.php
@@ -5,6 +5,7 @@
include_once 'utils.php';
include_once 'mail.php';
include_once 'ldap.php';
+include_once 'db_backend.php';
include_once 'validators.php';
include_once 'User.php';
require __DIR__ . '/vendor/autoload.php';
@@ -13,6 +14,7 @@
use Monolog\Handler\StreamHandler;
use Monolog\Handler\RotatingFileHandler;
use \User as User;
+use \DB as DB;
include $TEMPLATE . "strings.php";
$log = new Logger('signup');
$log->pushHandler(new RotatingFileHandler(__DIR__ . '/logs/signup.log', 0, Logger::DEBUG));
@@ -124,17 +126,23 @@
function verify_request(User $user)
{
+ global $log, $CONFERENCE_REGISTRATION, $CAPTCHA_LENGTH;
+
$TEMPLATE = template_path();
unset($_SESSION['captcha_token']);
include $TEMPLATE . 'strings.php';
$password = $_POST["password"];
$error = "";
- $error .= validate_username($user->username);
+ if (!$CONFERENCE_REGISTRATION) {
+ $error .= validate_username($user->username);
+ $error .= validate_password($password);
+ }
+ $log->debug("validating request");
$error .= validate_name($user->first_name, $FIRST_NAME_VALIDATION_ERROR);
$error .= validate_name($user->last_name, $LAST_NAME_VALIDATION_ERROR);
+ $log->debug("request validated: $error");
$error .= validate_email($user->email);
- $error .= validate_password($password);
if ($CAPTCHA_LENGTH > 0 && !(isset($_SESSION['captcha']) && PhraseBuilder::comparePhrases($_SESSION['captcha'], $_POST['captcha']))) {
@@ -156,7 +164,8 @@
$pending = redis_get("pending");
if ($pending) {
$maillist = $pending->mails;
- array_push($maillist, $user->email);
+ if(is_array($maillist))
+ array_push($maillist, $user->email);
} else
$maillist = [$user->email];
redis_set("pending", (object)["mails" => $maillist], $MAIL_CONFIRMATION_AWAIT_DELAY);
@@ -217,12 +226,14 @@
}
break;
case "recover":
+ if ($CONFERENCE_REGISTRATION)
+ break;
$TEMPLATE = template_path();
unset($_SESSION['captcha_token']);
include $TEMPLATE . 'strings.php';
$email = $_POST["email"];
- if (!ldap_mail_count($email)) {
+ if (($CONFERENCE_REGISTRATION & ! (new DB($log))->mail_count($email)) || !ldap_mail_count($email)) {
unset($_POST['email']);
$error = $error . $STRINGS->recover_email_not_registered;
}
@@ -260,6 +271,8 @@
break;
case "password_change":
+ if ($CONFERENCE_REGISTRATION)
+ break;
$password = $_POST['password'];
$error = validate_password($password);
if ($error) {
@@ -295,7 +308,7 @@
$token = $_GET["token"];
$user = redis_get_user($token);
if ($user && gettype($user) == "object") {
- if (ldap_add_user($user)) {
+ if (($CONFERENCE_REGISTRATION && (new DB($log))->add_user($user)) || (!$CONFERENCE_REGISTRATION && ldap_add_user($user))) {
if ($REDIRECT_TO)
header("refresh:5;url=" . $REDIRECT_TO);
@@ -308,7 +321,7 @@
}
}
redis_inc_ipdata(getClientIP(), "register");
- $log->info("User registered: " . $user->to_string());
+ $log->info("User registration completed: " . $user->to_string());
echo $STRINGS->email_confirmation;
if (isset($POST_REGISTER_HOOK)) $POST_REGISTER_HOOK($user);
include $TEMPLATE . "mail_confirmed.htm";