/*
* brisk - index_wr.php
*
- * Copyright (C) 2006-2014 Matteo Nastasi
+ * Copyright (C) 2006-2015 Matteo Nastasi
* mailto: nastasi@alternativeoutput.it
* matteo.nastasi@milug.org
* web: http://www.alternativeoutput.it
'en' => '<br>You or someone with your same IP address is standing up from a table without the permission of the other players <br><br>You will wait '),
'badsit_b' => array( 'it' => ' prima di poterti sedere nuovamente.<br><br>Se non sei stato tu ad alzarti e possiedi un login con password, autenticandoti con quello, potrai accedere.',
'en' => ' before you can sit down again. If you don\'t leave the table and you have a login with a password, authenticating with this one you will access'),
+ 'nu_netguard' => array('it' => "Di recente è già arrivata una richiesta da un indirizzo IP simile al tuo, riprova tra qualche tempo.",
+ 'en' => "EN di recente è già arrivata una richiesta da un indirizzo IP simile al tuo, riprova tra qualche tempo."),
+ 'nu_unkerr' => array('it' => "Si è verificato un errore inatteso, contattare l'amministratore.",
+ 'en' => "EN Si è verificato un errore inatteso, contattare l'amministratore."),
'nu_loginau' => array('it' => "login già in uso",
'en' => "login already in use"),
'nu_emailau' => array('it' => "email già utilizzata",
function index_wr_main(&$brisk, $remote_addr_full, $get, $post, $cookie)
{
- GLOBAL $G_domain, $G_webbase, $G_mail_seed;
+ GLOBAL $G_domain, $G_webbase, $G_mail_seed, $G_notguar_code;
GLOBAL $G_shutdown, $G_alarm_passwd, $G_ban_list, $G_black_list, $G_lang, $G_room_help, $G_room_about;
GLOBAL $G_room_passwdhowto, $mlang_indwr;
GLOBAL $G_tos_vers;
log_load("index_wr.php");
$remote_addr = addrtoipv4($remote_addr_full);
+ $remote_ip = ip2int($remote_addr);
if (($mesg = gpcs_var('mesg', $get, $post, $cookie)) === FALSE)
unset($mesg);
else if ($argz[0] == 'whysupport') {
echo show_notify(str_replace("\n", " ", $G_room_whysupport[$G_lang]), 0, $mlang_indwr['btn_close'][$G_lng], 400, 200);
}
- else if ($argz[0] == 'apprendice') {
+ else if ($argz[0] == 'apprentice') {
if (($cli_name = gpcs_var('cli_name', $get, $post, $cookie)) === FALSE)
$cli_name = "";
// check existence of username or email
$is_trans = FALSE;
do {
- if (($bdb = BriskDB::create()) == FALSE)
+ if (($bdb = BriskDB::create()) == FALSE) {
+ $mesg_to_user = "Connessione al database fallita";
break;
+ }
- // FIXME: CHECK IP AS PREVIOUS REQUIRER
+ // check IP address as previous requirer
+ if ($bdb->selfreg_check($remote_ip) == FALSE) {
+ $mesg_to_user = $mlang_indwr['nu_netguard'][$G_lang];
+ break;
+ }
$cli_name = urldecode($cli_name);
$cli_email = urldecode($cli_email);
// FIXME: move 'no-guaran' user into configuration file
if (($usr_obj = $bdb->user_add($cli_name, 'THE_PASS', $cli_email,
USER_FLAG_TY_DISABLE | USER_FLAG_TY_APPR,
- USER_DIS_REA_NU_MAILED, 10103)) == FALSE) {
+ USER_DIS_REA_NU_MAILED, $G_notguar_code)) == FALSE) {
fprintf(STDERR, "ERROR: user_add FAILED\n");
+ $mesg_to_user = "Fallito inserimento nel database.";
break;
}
if (($mail_code = $bdb->mail_reserve_code()) == FALSE) {
fprintf(STDERR, "ERROR: mail reserve code FAILED\n");
+ $mesg_to_user = "Fallita creazione codice email.";
break;
}
$hash = md5($curtime . $G_alarm_passwd . $cli_name . $cli_email);
$mail_item = new MailDBItem($mail_code, $usr_obj->code, MAIL_TYP_CHECK,
$curtime, $subj, $body_txt, $body_htm, $hash);
- if (brisk_mail($cli_email, $subj, $body_txt, $body_htm) == FALSE) {
- // mail error
- fprintf(STDERR, "ERROR: mail send FAILED\n");
- break;
- }
-
// save the mail
if ($mail_item->store($bdb) == FALSE) {
// store mail error
fprintf(STDERR, "ERROR: store mail FAILED\n");
+ $mesg_to_user = "Fallita procedura di store.";
+ break;
+ }
+
+ // check IP address as previous requirer
+ if ($bdb->selfreg_set($remote_ip) == FALSE) {
+ $mesg_to_user = $mlang_indwr['nu_unkerr'][$G_lang];
+ break;
+ }
+
+ if (brisk_mail($cli_email, $subj, $body_txt, $body_htm) == FALSE) {
+ // mail error
+ fprintf(STDERR, "ERROR: mail send FAILED\n");
+ $mesg_to_user = "Fallito invio email.";
break;
}
- echo "1";
$bdb->transaction('COMMIT');
+ fprintf(STDERR, "REMOTE: %d\n", $remote_ip);
+ echo "1";
return TRUE;
} while(FALSE);
- $bdb->transaction('ROLLBACK');
+ if ($is_trans)
+ $bdb->transaction('ROLLBACK');
echo "$mesg_to_user";
return FALSE;
}
$dobreak = FALSE;
do {
log_wr("INFO:SKIP:argz == poll name: [".$cli_poll_name."] AUTH: ".$user->is_auth());
- if ( ! $user->is_auth() ) {
+ if ( ! $user->is_auth() || $user->is_appr() ) {
// MLANG: <b>Per partecipare al sondaggio devi essere autenticato.</b>
$mesg_to_user = nickserv_msg($dt, $mlang_indwr['pollmust'][$G_lang]);
log_wr("break1");
$not_allowed_msg = nickserv_msg($dt, sprintf($mlang_indwr['tabwait'][$G_lang],
$table->wakeup_time - $curtime));
}
- else if ($table->auth_type == TABLE_AUTH_TY_CERT && ( ! $user->is_cert() ) ) {
+ else if ( $table->auth_type == TABLE_AUTH_TY_CERT &&
+ (!$user->is_cert() || $user->is_appr()) ) {
$not_allowed_msg = nickserv_msg($dt, $mlang_indwr['mustcert'][$G_lang]);
}
- else if ($table->auth_type == TABLE_AUTH_TY_AUTH && ( ! $user->is_auth() ) ) {
+ else if ( $table->auth_type == TABLE_AUTH_TY_AUTH &&
+ (!$user->is_auth() || $user->is_appr()) ) {
$not_allowed_msg = nickserv_msg($dt, $mlang_indwr['mustauth'][$G_lang]);
}
else if ($user->flags & USER_FLAG_TY_FIRONLY && $table->player_n > 0) {