X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Findex_wr.php;h=6d5484bd1c5ac5f6e64ccd0e1a476f955111faf7;hb=64f3311cce744f8bbac899511bbf58c7c5afdab3;hp=a9d890674049b05c40d4f89674beda16b8e0622a;hpb=46feebd77c3d3ae776b5b517aeefebee37c5e42a;p=brisk.git
diff --git a/web/index_wr.php b/web/index_wr.php
index a9d8906..6d5484b 100644
--- a/web/index_wr.php
+++ b/web/index_wr.php
@@ -2,7 +2,7 @@
/*
* brisk - index_wr.php
*
- * Copyright (C) 2006-2012 Matteo Nastasi
+ * Copyright (C) 2006-2014 Matteo Nastasi
* mailto: nastasi@alternativeoutput.it
* matteo.nastasi@milug.org
* web: http://www.alternativeoutput.it
@@ -22,16 +22,6 @@
*
*/
-// require_once("Obj/brisk.phh");
-// require_once("Obj/auth.phh");
-// require_once("Obj/proxyscan.phh");
-
-// Use of proxies isn't allowed.
-// if (is_proxy()) {
-// sleep(5);
-// exit;
-// }
-
$mlang_indwr = array( 'btn_backtotab' => array( 'it' => 'Torna ai tavoli.',
'en' => 'Back to tables.' ),
'warrrepl' => array( 'it' => '
Il nominativo è stato inoltrato all\'amministratore.
Nell\'arco di pochi giorni verrà
notificata al garantito l\'avvenuta registrazione.',
@@ -77,17 +67,65 @@ $mlang_indwr = array( 'btn_backtotab' => array( 'it' => 'Torna ai tavoli.',
'badsit_a' => array( 'it' => '
Tu o qualcuno col tuo stesso indirizzo IP si è alzato da un tavolo senza il consenso degli altri giocatori.
Dovrai aspettare ancora ',
'en' => '
You or someone with your same IP address is standing up from a table without the permission of the other players
You will wait '),
'badsit_b' => array( 'it' => ' prima di poterti sedere nuovamente.
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')
-
+ '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_msubj' => array( 'it' => 'Brisk: verifica email',
+ 'en' => 'Brisk: email verification'),
+ // %s(guar) %s(login) %s(baseurl) %d(code) %s(hash)
+ 'nu_mtext' => array( 'it' =>
+'Ciao, sono l\' amministratore del sito di Brisk.
+
+L\' utente \'%s\' ha garantito per te col nickname \'%s\',
+vai al link: <%s>
+per confermare il tuo indirizzo di posta elettronica.
+
+Ciò è necessario per ottenere la password.
+
+Saluti e buone partite, mop.',
+ 'en' => 'EN mtext [%s] [%s] [%s]'),
+ 'nu_mhtml' => array( 'it' => 'Ciao, sono l\' amministratore del sito di Brisk.
+L\' utente \'%s\' ha garantito per te col nickname \'%s\',
+clicca qui per confermare il tuo indirizzo di posta elettronica.
+Ciò è necessario per ottenere la password.
+Saluti e buone partite, mop.
',
+ 'en' => 'EN mhtml [%s] [%s] [%s]'),
+
+ 'nu_gtext' => array( 'it' =>
+'Ciao %s, sono l\' amministratore del sito di Brisk.
+
+Ti volevo avvisare che ho attivato i login di \'%s\' che hai
+garantito.
+
+Ti ricordo che i login vanno dati a persone di fiducia, se 3
+di quelli che hai autenticato verranno segnati come molestatori
+verrà sospeso anche il tuo accesso.
+
+Grazie dell\' impegno, mop.',
+ 'en' => 'EN nu_gtext [%s][%s]'),
+
+ 'nu_ghtml' => array( 'it' =>
+'Ciao %s, sono l\' amministratore del sito di Brisk.
+Ti volevo avvisare che ho attivato i login di \'%s\' che hai
+garantito.
+Ti ricordo che i login vanno dati a persone di fiducia, se 3
+di quelli che hai autenticato verranno segnati come molestatori
+verrà sospeso anche il tuo accesso.
+Grazie dell\' impegno, mop.',
+ 'en' => 'EN nu_ghtml [%s][%s]')
);
-function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
-{
- GLOBAL $G_shutdown, $G_black_list, $G_lang, $G_room_help, $G_room_about, $G_room_passwdhowto, $mlang_indwr;
+define('LICMGR_CHO_ACCEPT', 0);
+define('LICMGR_CHO_REFUSE', 1);
+define('LICMGR_CHO_AFTER', 2);
- $remote_addr = addrtoipv4($remote_addr_full);
+function index_wr_main(&$brisk, $remote_addr_full, $get, $post, $cookie)
+{
+ GLOBAL $G_domain, $G_webbase, $G_mail_seed;
+ 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);
if (($mesg = gpcs_var('mesg', $get, $post, $cookie)) === FALSE)
unset($mesg);
@@ -104,13 +142,6 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
/*
* MAIN
*/
-
- /* if the IP is banned, exit without do nothing */
- if (array_search($remote_addr, $G_black_list) !== FALSE) {
- // TODO: find a way to add a nonblocking sleep(5) here
- return (FALSE);
- }
-
$is_spawn = FALSE;
log_wr(0, 'index_wr.php: COMM: '.xcapemesg($mesg));
@@ -119,7 +150,7 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
$curtime = time();
$dt = date("H:i ", $curtime);
- if (($user = $room->get_user($sess, &$idx)) == FALSE) {
+ if (($user = $brisk->get_user($sess, &$idx)) == FALSE) {
$argz = explode('|', xcapemesg($mesg));
if ($argz[0] == 'getchallenge') {
@@ -192,8 +223,9 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
return FALSE;
}
return TRUE;
- }
+ } // end if (($user = $brisk->get_user($sess, ... == FALSE) {
+ $brisk->sess_cur_set($user->sess);
$argz = explode('|', xcapemesg($mesg));
log_wr('POSTSPLIT: '.$argz[0]);
@@ -201,7 +233,8 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
// LACC UPDATED
$user->lacc = $curtime;
- if (array_search($user->ip, $G_black_list) !== FALSE) {
+ if (!($user->flags & USER_FLAG_AUTH) &&
+ $brisk->ban_check($user->ip)) {
// TODO: find a way to add a nonblocking sleep(5) here
return (FALSE);
}
@@ -230,11 +263,11 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
if ($argz[1] == 'save') {
if ($user->stat == 'room' && $user->subst == 'standup') {
- $room->standup_update($user);
+ $brisk->standup_update($user);
}
else if ($user->stat == 'room' && $user->subst == 'sitdown') {
log_main("chatt_send pre table update");
- $room->table_update($user);
+ $brisk->table_update($user);
log_main("chatt_send post table update");
}
}
@@ -248,9 +281,9 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
log_rd2("AUTO LOGOUT.");
if ($user->subst == 'sitdown' || $user->stat == 'table')
- $room->room_wakeup($user);
+ $brisk->room_wakeup($user);
else if ($user->subst == 'standup')
- $room->room_outstandup(&$user);
+ $brisk->room_outstandup(&$user);
else {
log_rd2("SHUTDOWN FROM WHAT ???");
}
@@ -267,22 +300,88 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
log_wr("INFO:SKIP:argz == warranty name: [".$cli_name."] AUTH: ".($user->flags & USER_FLAG_AUTH));
if ($user->flags & USER_FLAG_AUTH) {
- if (($wa_lock = Warrant::lock_data(TRUE)) != FALSE) {
- if (($fp = @fopen(LEGAL_PATH."/warrant.txt", 'a')) != FALSE) {
- /* Unix time | session | nickname | IP | where was | mesg */
- fwrite($fp, sprintf("%ld|%s|%s|%s|\n", $curtime, xcapelt($user->name), xcapelt(urldecode($cli_name)), xcapelt(urldecode($cli_email))));
- fclose($fp);
+ if (0 == 1) {
+ if (($wa_lock = Warrant::lock_data(TRUE)) != FALSE) {
+ if (($fp = @fopen(LEGAL_PATH."/warrant.txt", 'a')) != FALSE) {
+ /* Unix time | session | nickname | IP | where was | mesg */
+ fwrite($fp, sprintf("%ld|%s|%s|%s|\n", $curtime, xcapelt($user->name), xcapelt(urldecode($cli_name)), xcapelt(urldecode($cli_email))));
+ fclose($fp);
+ }
+ Warrant::unlock_data($wa_lock);
+ $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
+ /* MLANG: "
Il nominativo è stato inoltrato all\'amministratore.
Nell\'arco di pochi giorni vi verrà
notificata l\'avvenuta registrazione." */
+ $user->comm[$user->step % COMM_N] .= show_notify($mlang_indwr['warrrepl'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 150);
+ $user->step_inc();
+ echo "1";
}
- Warrant::unlock_data($wa_lock);
- $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
- /* MLANG: "
Il nominativo è stato inoltrato all\'amministratore.
Nell\'arco di pochi giorni vi verrà
notificata l\'avvenuta registrazione." */
- $user->comm[$user->step % COMM_N] .= show_notify($mlang_indwr['warrrepl'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 150);
- $user->step_inc();
- echo "1";
- }
+ else {
+ /* MLANG: "E\' occorso un errore durante il salvataggio, riprova o contatta l\'amministratore." */
+ $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['commerr'][$G_lang]);
+ }
+ } // 0 == 1
else {
- /* MLANG: "E\' occorso un errore durante il salvataggio, riprova o contatta l\'amministratore." */
- $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['commerr'][$G_lang]);
+ // check existence of username or email
+ $is_trans = FALSE;
+ do {
+ if (($bdb = BriskDB::create()) == FALSE)
+ break;
+
+ $cli_name = urldecode($cli_name);
+ $cli_email = urldecode($cli_email);
+
+ // check for already used fields
+ if (($idret = $bdb->check_record_by_login_or_email($cli_name, $cli_email)) != 0) {
+ $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV,
+ ($idret == 1 ? "login già in uso" :
+ ($idret == 2 ? "email già utilizzata" : "errore sconosciuto"))
+ );
+ break;
+ }
+ $bdb->transaction('BEGIN');
+ $is_trans = TRUE;
+ // insert the new user disabled with reason NU_MAILED
+ if (($usr_obj = $bdb->user_add($cli_name, 'THE_PASS', $cli_email,
+ USER_FLAG_TY_DISABLE,
+ USER_DIS_REA_NU_MAILED, $user->code)) == FALSE) {
+ fprintf(STDERR, "ERROR: user_add FAILED\n");
+ break;
+ }
+ if (($mail_code = $bdb->mail_reserve_code()) == FALSE) {
+ fprintf(STDERR, "ERROR: mail reserve code FAILED\n");
+ break;
+ }
+ $hash = md5($curtime . $G_alarm_passwd . $cli_name . $cli_email);
+
+ $confirm_page = sprintf("http://%s/%s/mailmgr.php?f_act=checkmail&f_code=%d&f_hash=%s",
+ $G_domain, $G_webbase, $mail_code, $hash);
+ $subj = $mlang_indwr['nu_msubj'][$G_lang];
+ $body_txt = sprintf($mlang_indwr['nu_mtext'][$G_lang],
+ $user->name, $cli_name, $confirm_page);
+ $body_htm = sprintf($mlang_indwr['nu_mhtml'][$G_lang],
+ $user->name, $cli_name, $confirm_page);
+
+ $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");
+ break;
+ }
+ $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
+ /* MLANG: "
Il nominativo è stato inoltrato all\'amministratore.
Nell\'arco di pochi giorni vi verrà
notificata l\'avvenuta registrazione." */
+ $user->comm[$user->step % COMM_N] .= show_notify($mlang_indwr['warrrepl'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 150);
+ $user->step_inc();
+ echo "1";
+ $bdb->transaction('COMMIT');
+ } while(FALSE);
+ $bdb->transaction('ROLLBACK');
}
}
@@ -515,9 +614,7 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
$user->step_inc();
}
-
else if ($argz[0] == 'placing') {
-
require_once("briskin5/Obj/briskin5.phh");
require_once("briskin5/Obj/placing.phh");
@@ -526,11 +623,7 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
log_wr($user->comm[$user->step % COMM_N]);
$user->step_inc();
-
-
}
-
-
else if ($argz[0] == 'roadmap') {
$user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
$user->comm[$user->step % COMM_N] .= show_notify(str_replace("\n", " ", $G_room_roadmap[$G_lang]), 0, $mlang_indwr['btn_backtotab'][$G_lang], 400, 200);
@@ -548,7 +641,36 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
}
else if ($argz[0] == 'chatt') {
- $room->chatt_send(&$user, xcapemesg($mesg));
+ $brisk->chatt_send(&$user, xcapemesg($mesg));
+ }
+ else if ($argz[0] == 'tosmgr') {
+ // check IF is authnticated user, both terms of service versions matches
+ if ($user->flags & USER_FLAG_AUTH && count($argz) == 5) {
+ $f_type = $argz[1]; $f_code = $argz[2];
+ $f_tos_curr = $argz[3]; $f_tos_vers = $argz[4];
+
+ if ("$f_tos_curr" == $user->rec->tos_vers_get() &&
+ "$f_tos_vers" == "$G_tos_vers") {
+ if ("$f_type" == "soft" || "$f_type" == "hard") {
+ $res = 100;
+ switch ($f_code) {
+ case LICMGR_CHO_ACCEPT:
+ $user->rec->tos_vers_set($G_tos_vers);
+ $res = $user->tos_store();
+ break;
+ case LICMGR_CHO_REFUSE:
+ $user->flags_set(USER_FLAG_TY_DISABLE, USER_FLAG_TY_ALL);
+ $user->rec->disa_reas_set(USER_DIS_REA_LICENCE);
+ $res = $user->state_store();
+
+ $user->comm[$user->step % COMM_N] = $user->blocking_error(TRUE);
+ $user->the_end = TRUE;
+ $user->step_inc();
+ break;
+ }
+ }
+ }
+ }
}
/**********************
* *
@@ -556,7 +678,6 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
* *
**********************/
else if ($user->subst == 'standup') {
-
if ($argz[0] == 'sitdown') {
log_wr("SITDOWN command");
@@ -567,7 +688,7 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
// Take parameters
$table_idx = (int)$argz[1];
- $table = &$room->table[$table_idx];
+ $table = &$brisk->table[$table_idx];
$not_allowed_msg = "";
if ($G_shutdown) {
@@ -635,28 +756,28 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
//
// Create new spawned table
- // $bri_sem = Bin5::lock_data(TRUE, $table_idx);
+ // $bin5_sem = Bin5::lock_data(TRUE, $table_idx);
$table_token = uniqid("");
- $room->table[$table_idx]->table_token = $table_token;
- $room->table[$table_idx]->table_start = $curtime;
+ $brisk->table[$table_idx]->table_token = $table_token;
+ $brisk->table[$table_idx]->table_start = $curtime;
$plist = "$table_token|$user->table|$table->player_n";
for ($i = 0 ; $i < $table->player_n ; $i++) {
- $plist .= '|'.$room->user[$table->player[$i]]->sess;
+ $plist .= '|'.$brisk->user[$table->player[$i]]->sess;
}
log_legal($curtime, $user->ip, $user, "STAT:CREATE_GAME", $plist);
log_wr("pre new Bin5");
- if (($bri = new Bin5($room, $table_idx, $table_token, $get, $post, $cookie)) == FALSE)
+ if (($bin5 = new Bin5($brisk, $table_idx, $table_token, $get, $post, $cookie)) == FALSE)
log_wr("bri create: FALSE");
else
- log_wr("bri create: ".serialize($bri));
+ log_wr("bri create: ".serialize($bin5));
log_wr("pre init table");
// init table
- $bri_table = $bri->table[0];
- $bri_table->init($bri->user);
- $bri_table->game_init($bri->user);
+ $bin5_table = $bin5->table[0];
+ $bin5_table->init($bin5->user);
+ $bin5_table->game_init($bin5->user);
//
// Init spawned users.
//
@@ -664,17 +785,17 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
//
log_wr("game_init after");
for ($i = 0 ; $i < $table->player_n ; $i++) {
- $bri_user_cur = $bri->user[$i];
- $user_cur = $room->user[$table->player[$i]];
+ $bin5_user_cur = $bin5->user[$i];
+ $user_cur = $brisk->user[$table->player[$i]];
- $bri_user_cur->laccwr = $curtime;
- $bri_user_cur->trans_step = $user_cur->step + 1;
- $bri_user_cur->comm[$bri_user_cur->step % COMM_N] = "";
- $bri_user_cur->step_inc();
- $bri_user_cur->comm[$bri_user_cur->step % COMM_N] = show_table(&$bri,&$bri_user_cur,$bri_user_cur->step+1,TRUE, FALSE);
- $bri_user_cur->step_inc();
+ $bin5_user_cur->laccwr = $curtime;
+ $bin5_user_cur->trans_step = $user_cur->step + 1;
+ $bin5_user_cur->comm[$bin5_user_cur->step % COMM_N] = "";
+ $bin5_user_cur->step_inc();
+ $bin5_user_cur->comm[$bin5_user_cur->step % COMM_N] = show_table(&$bin5,&$bin5_user_cur,$bin5_user_cur->step+1,TRUE, FALSE);
+ $bin5_user_cur->step_inc();
- log_wr("TRY PRESAVE: ".$bri_user_cur->step." TRANS STEP: ".$bri_user_cur->trans_step);
+ log_wr("TRY PRESAVE: ".$bin5_user_cur->step." TRANS STEP: ".$bin5_user_cur->trans_step);
log_wr("Pre if!");
@@ -692,11 +813,11 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
$user_cur->step_inc();
}
log_wr("presave bri");
- $room->match_add($table_idx, $bri);
+ $brisk->match_add($table_idx, $bin5);
log_wr("postsave bri");
}
// change room
- $room->room_sitdown($user, $table_idx);
+ $brisk->room_sitdown($user, $table_idx);
log_wr("MOP finish");
}
@@ -714,10 +835,10 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
**********************/
else if ($user->subst == 'sitdown') {
if ($argz[0] == 'wakeup') {
- $room->room_wakeup($user);
+ $brisk->room_wakeup($user);
}
else if ($argz[0] == 'logout') {
- $room->room_wakeup($user);
+ $brisk->room_wakeup($user);
$user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
$user->comm[$user->step % COMM_N] .= 'postact_logout();';
$user->the_end = TRUE;
@@ -725,12 +846,7 @@ function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
}
}
}
- log_wr("before save data");
- // Room::save_data($room);
- log_wr($user->step, 'index_wr.php: after save_data()');
-/* Room::unlock_data($sem); */
-/* exit; */
return (FALSE);
}
?>