*
*/
+foreach (array("HTTP_HOST", "DOCUMENT_ROOT") as $i) {
+ if (isset($_SERVER[$i])) {
+ $$i = $_SERVER[$i];
+ }
+ }
+
+foreach (array("pazz") as $i) {
+ if (isset($_POST[$i])) {
+ $$i = $_POST[$i];
+ }
+ }
+
+foreach (array("sess") as $i) {
+ if (isset($_COOKIE[$i])) {
+ $$i = $_COOKIE[$i];
+ }
+ }
+
+foreach (array("sess") as $i) {
+ if (isset($_COOKIE[$i])) {
+ $$i = $_COOKIE[$i];
+ }
+ }
+
$G_base = "";
$mlang_umgmt = array( 'nu_psubj' => array( 'it' => 'Brisk: credenziali di accesso.',
Benvenuto e buone partite, mop.',
'en' => 'EN ptext [%s] [%s]'),
'nu_phtml' => array( 'it' => 'Ciao, sono l\' amministratore del sito di Brisk.<br><br>
-La verifica del tuo indirizzo di posta elettronica e del tuo nickname è andata a buon fine, per accedere al sito d\'ora in poi potrai usare l\' utente \'%s\' e la password \'%s\'.<br>
+La verifica del tuo indirizzo di posta elettronica e del tuo nickname è andata a buon fine.<br><br>Per accedere al sito d\'ora in poi potrai usare l\' utente \'%s\' e la password \'%s\'.<br><br>
Benvenuto e buone partite, mop.<br>',
'en' => 'EN phtml [%s] [%s]')
);
$socket = FALSE;
$ret = FALSE;
- $ip = $_SERVER["REMOTE_ADDR"];
+ if (array_key_exists("HTTP_X_REAL_IP", $_SERVER)) {
+ $ip = $_SERVER["HTTP_X_REAL_IP"];
+ }
+ else {
+ $ip = $_SERVER["REMOTE_ADDR"];
+ }
$stp = 0;
$private = md5($G_alarm_passwd.$ip.$sess);
$cmd = array ("cmd" => "userauth", "sess" => $sess, "private" => $private, "the_end" => "true");
$cmd_len = mb_strlen($cmd_ser, "ASCII");
do {
- if (($socket = stream_socket_client("unix://".USOCK_PATH."2")) == FALSE)
+ if (($socket = stream_socket_client('unix://'.USOCK_PATH_PFX.'_admin.sock')) == FALSE)
break;
$stp = 1;
if (($rwr = fwrite($socket, $cmd_ser, $cmd_len)) == FALSE
return ($ret);
}
+$s_style = "
+<style>
+ table.the_tab {
+ border-collapse: collapse;
+ margin: 8px;
+ }
+
+ table.the_tab td {
+ border: 1px solid black;
+ padding: 8px;
+ }
+</style>";
+
function main() {
- GLOBAL $G_dbpfx, $G_lang, $G_alarm_passwd, $G_domain, $G_webbase;
+ GLOBAL $s_style, $G_dbpfx, $G_lang, $G_alarm_passwd, $G_proto, $G_domain, $G_webbase;
GLOBAL $mlang_umgmt, $mlang_indwr, $f_mailusers, $sess, $_POST, $_SERVER;
+
$curtime = time();
$status = "";
SELECT usr.*, guar.login AS guar_login
FROM %susers AS usr
JOIN %susers AS guar ON guar.code = usr.guar_code
- WHERE ( (usr.type & (CAST (X'%x' as integer))) = (CAST (X'%x' as integer)) )
+ WHERE usr.type & (CAST (X'%x' as integer)) = (CAST (X'%x' as integer))
AND usr.disa_reas = %d AND usr.code = %d;",
$G_dbpfx, $G_dbpfx,
USER_FLAG_TY_DISABLE, USER_FLAG_TY_DISABLE,
$is_trans = TRUE;
- if (($bdb->user_update_flag_ty($usr_obj->code,
- USER_FLAG_TY_DISABLE, USER_DIS_REA_NU_ADDED,
- USER_FLAG_TY_DISABLE, USER_DIS_REA_NU_MAILED)) == FALSE) {
+ if (($bdb->user_update_flag_ty($usr_obj->code, USER_FLAG_TY_DISABLE,
+ TRUE, USER_DIS_REA_NU_ADDED,
+ TRUE, USER_DIS_REA_NU_MAILED)) == FALSE) {
echo "fail 2<br>";
break;
}
}
$hash = md5($curtime . $G_alarm_passwd . $usr_obj->login . $usr_obj->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);
+ $confirm_page = sprintf("%s://%s/%s/mailmgr.php?f_act=checkmail&f_code=%d&f_hash=%s",
+ $G_proto, $G_domain, $G_webbase, $mail_code, $hash);
$subj = $mlang_indwr['nu_msubj'][$G_lang];
- $body_txt = sprintf($mlang_indwr['nu_mtext'][$G_lang],
- $usr_obj->guar_login, $usr_obj->login, $confirm_page);
- $body_htm = sprintf($mlang_indwr['nu_mhtml'][$G_lang],
- $usr_obj->guar_login, $usr_obj->login, $confirm_page);
+ if (($usr_obj->type & USER_FLAG_TY_APPR) == USER_FLAG_TY_APPR) {
+ $body_txt = sprintf($mlang_indwr['ap_mtext'][$G_lang],
+ $usr_obj->login, $confirm_page);
+ $body_htm = sprintf($mlang_indwr['ap_mhtml'][$G_lang],
+ $usr_obj->login, $confirm_page);
+ }
+ else {
+ $body_txt = sprintf($mlang_indwr['nu_mtext'][$G_lang],
+ $usr_obj->guar_login, $usr_obj->login, $confirm_page);
+ $body_htm = sprintf($mlang_indwr['nu_mhtml'][$G_lang],
+ $usr_obj->guar_login, $usr_obj->login, $confirm_page);
+ }
$mail_item = new MailDBItem($mail_code, $usr_obj->code, MAIL_TYP_CHECK,
$curtime, $subj, $body_txt, $body_htm, $hash);
break;
}
}
- }
+ } // else if ($action == "accept") {
+ else if ($action == "delete") {
+ foreach($_POST as $key => $value) {
+ if (substr($key, 0, 9) != "f_newuser")
+ continue;
+
+ $id = (int)substr($key, 9);
+ if ($id <= 0)
+ continue;
+
+ // check existence of username or email
+ $is_trans = FALSE;
+ $res = FALSE;
+ do {
+ if (($bdb = BriskDB::create()) == FALSE)
+ break;
+
+ // retrieve list added users
+ $usr_sql = sprintf("
+SELECT usr.*, guar.login AS guar_login
+ FROM %susers AS usr
+ JOIN %susers AS guar ON guar.code = usr.guar_code
+ WHERE usr.type & (CAST (X'%x' as integer)) = (CAST (X'%x' as integer))
+ AND usr.disa_reas = %d AND usr.code = %d;",
+ $G_dbpfx, $G_dbpfx,
+ USER_FLAG_TY_DISABLE, USER_FLAG_TY_DISABLE,
+ USER_DIS_REA_NU_ADDED, $id);
+ if (($usr_pg = pg_query($bdb->dbconn->db(), $usr_sql)) == FALSE) {
+ log_crit("stat-day: select from tournaments failed");
+ break;
+ }
+ $usr_n = pg_numrows($usr_pg);
+ if ($usr_n != 1) {
+ $status .= sprintf("Inconsistency for code %d, returned %d records, skipped.<br>",
+ $id, $usr_n);
+ break;
+ }
+
+ $usr_obj = pg_fetch_object($usr_pg, 0);
+
+ $bdb->transaction('BEGIN');
+ $is_trans = TRUE;
+
+ // retrieve list added users
+ $usr_sql = sprintf("
+ DELETE FROM %susers
+ WHERE (type & (CAST (X'%x' as integer))) = (CAST (X'%x' as integer))
+ AND disa_reas = %d AND code = %d;",
+ $G_dbpfx, USER_FLAG_TY_DISABLE, USER_FLAG_TY_DISABLE,
+ USER_DIS_REA_NU_ADDED, $id);
+ if (($usr_pg = pg_query($bdb->dbconn->db(), $usr_sql)) == FALSE) {
+ log_crit(sprintf("Delete of user %d failed", $id));
+ break;
+ }
+
+ $status .= sprintf("User %s removed: SUCCESS<br>", $usr_obj->login);
+ $bdb->transaction('COMMIT');
+ $res = TRUE;
+ } while(FALSE);
+ if ($res == FALSE) {
+ $status .= sprintf("Error occurred during delete action<br>");
+ if ($is_trans)
+ $bdb->transaction('ROLLBACK');
+ break;
+ }
+ }
+ } // else if ($action == "accept") {
+
+
do {
if (($bdb = BriskDB::create()) == FALSE) {
SELECT usr.*, guar.login AS guar_login
FROM %susers AS usr
JOIN %susers AS guar ON guar.code = usr.guar_code
- WHERE ( (usr.type & (CAST (X'%x' as integer))) = (CAST (X'%x' as integer)) )
- AND usr.disa_reas = %d;",
+ WHERE usr.type & (CAST (X'%x' as integer)) = (CAST (X'%x' as integer))
+ AND usr.disa_reas = %d ORDER BY usr.lintm;",
$G_dbpfx, $G_dbpfx,
USER_FLAG_TY_DISABLE, USER_FLAG_TY_DISABLE,
USER_DIS_REA_NU_ADDED);
$usr_obj->code, ($nocheck ? "" : "CHECKED"),
eschtml($usr_obj->login), eschtml($usr_obj->guar_login), $usr_obj->lintm);
}
+
+
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Brisk: new imported users management.</title>
+ <?php echo "$s_style"; ?>
</head>
<body>
<h2> New imported users management.</h2>
<?php if ($status != "") { echo "$status"; } ?>
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="POST">
-<table>
+<table class="the_tab">
<?php
echo $tab_lines;
?>
SELECT usr.*, guar.login AS guar_login
FROM %susers AS usr
JOIN %susers AS guar ON guar.code = usr.guar_code
- WHERE ( (usr.type & (CAST (X'%x' as integer))) = (CAST (X'%x' as integer)) )
- AND usr.disa_reas = %d;",
+ WHERE usr.type & (CAST (X'%x' as integer)) = (CAST (X'%x' as integer))
+ AND usr.disa_reas = %d ORDER BY usr.lintm;",
$G_dbpfx, $G_dbpfx,
USER_FLAG_TY_DISABLE, USER_FLAG_TY_DISABLE,
USER_DIS_REA_NU_MAILED);
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Brisk: new mailed users management.</title>
+ <?php echo "$s_style"; ?>
</head>
<body>
<h2> New mailed users management.</h2>
<?php if ($status != "") { echo "$status"; } ?>
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="POST">
-<table>
+<table class="the_tab">
<?php
echo $tab_lines;
?>
SELECT usr.*, guar.login AS guar_login
FROM %susers AS usr
JOIN %susers AS guar ON guar.code = usr.guar_code
- WHERE ( (usr.type & (CAST (X'%x' as integer))) = (CAST (X'%x' as integer)) )
+ WHERE usr.type & (CAST (X'%x' as integer)) = (CAST (X'%x' as integer))
AND usr.disa_reas = %d AND usr.code = %d;",
$G_dbpfx, $G_dbpfx,
- USER_FLAG_TY_ALL, USER_FLAG_TY_DISABLE,
+ USER_FLAG_TY_DISABLE, USER_FLAG_TY_DISABLE,
USER_DIS_REA_NU_TOBECHK, $id);
if (($usr_pg = pg_query($bdb->dbconn->db(), $usr_sql)) == FALSE) {
log_crit("stat-day: select from tournaments failed");
break;
}
- if (($bdb->user_update_flag_ty($usr_obj->code,
- USER_FLAG_TY_DISABLE, USER_DIS_REA_NU_TOBECHK,
- USER_FLAG_TY_NORM, USER_DIS_REA_NONE)) == FALSE) {
+ if (($bdb->user_update_flag_ty($usr_obj->code, USER_FLAG_TY_DISABLE,
+ TRUE, USER_DIS_REA_NU_TOBECHK,
+ FALSE, USER_DIS_REA_NONE)) == FALSE) {
echo "fail 2<br>";
break;
}
$body_htm = sprintf($mlang_umgmt['nu_phtml'][$G_lang],
$usr_obj->login, $passwd);
+ log_step(sprintf("[%s], [%s], [%s], [%s]\n", $usr_obj->email, $subj, $body_txt, $body_htm));
+
+
if (brisk_mail($usr_obj->email, $subj, $body_txt, $body_htm) == FALSE) {
// mail error
fprintf(STDERR, "ERROR: mail send FAILED\n");
}
exit;
}
+ else if ($action == "delete") {
+ foreach($_POST as $key => $value) {
+ if (substr($key, 0, 9) != "f_newuser")
+ continue;
+
+ $id = (int)substr($key, 9);
+ if ($id <= 0)
+ continue;
+
+ // check existence of username or email
+ $is_trans = FALSE;
+ $res = FALSE;
+ do {
+ if (($bdb = BriskDB::create()) == FALSE)
+ break;
+
+ // retrieve list added users
+ $usr_sql = sprintf("
+SELECT usr.*, guar.login AS guar_login
+ FROM %susers AS usr
+ JOIN %susers AS guar ON guar.code = usr.guar_code
+ WHERE usr.type & (CAST (X'%x' as integer)) = (CAST (X'%x' as integer))
+ AND usr.disa_reas = %d AND usr.code = %d;",
+ $G_dbpfx, $G_dbpfx,
+ USER_FLAG_TY_DISABLE, USER_FLAG_TY_DISABLE,
+ USER_DIS_REA_NU_TOBECHK, $id);
+
+
+ if (($usr_pg = pg_query($bdb->dbconn->db(), $usr_sql)) == FALSE) {
+ log_crit("stat-day: select from tournaments failed");
+ break;
+ }
+ $usr_n = pg_numrows($usr_pg);
+ if ($usr_n != 1) {
+ $status .= sprintf("Inconsistency for code %d, returned %d records, skipped.<br>",
+ $id, $usr_n);
+ break;
+ }
+
+ $usr_obj = pg_fetch_object($usr_pg, 0);
+
+ $bdb->transaction('BEGIN');
+ $is_trans = TRUE;
+
+ $del_sql = sprintf("DELETE FROM %susers WHERE code = %d;",
+ $G_dbpfx, $usr_obj->code);
+
+ if (($del_pg = pg_query($bdb->dbconn->db(), $del_sql)) == FALSE) {
+ log_crit(sprintf("Delete user %d failed", $usr_obj->code));
+ break;
+ }
+
+ // FIXME: add to index_wr.php strings
+ $subj = "Brisk: nickname rifiutato";
+ // the same for both cases:
+ // if (($usr_obj->type & USER_FLAG_TY_APPR) == USER_FLAG_TY_APPR) {
+ $body_txt = sprintf('Ciao, sono l\' amministratore del sito di Brisk.
+
+Ti volevo segnalare che il nickname \'%s\' con cui ti volevi registrare
+non ha superato la fase di verifica manuale; il motivo può essere
+la sua illeggibilità per gli altri utenti o il contenuto poco ortodosso
+o troppo aggressivo o ci sono troppe cifre consecutive o qualcosa del genere.
+
+La procedura di registrazione va ripetuta.
+
+Saluti e buone partite, mop.', $usr_obj->login);
+
+ $body_htm = sprintf('Ciao, sono l\' amministratore del sito di Brisk.<br><br>
+Ti volevo segnalare che il nickname \'%s\' con cui ti volevi registrare
+non ha superato la fase di verifica manuale; il motivo può essere
+la sua illeggibilità per gli altri utenti o il contenuto poco ortodosso
+o troppo aggressivo o ci sono troppe cifre consecutive o qualcosa del genere.<br><br>
+La procedura di registrazione va ripetuta.<br><br>
+Saluti e buone partite, mop.', $usr_obj->login);
+ /* } */
+ /* else { */
+ /* $body_txt = sprintf($mlang_indwr['nu_mtext'][$G_lang], */
+ /* $usr_obj->guar_login, $usr_obj->login, $confirm_page); */
+ /* $body_htm = sprintf($mlang_indwr['nu_mhtml'][$G_lang], */
+ /* $usr_obj->guar_login, $usr_obj->login, $confirm_page); */
+ /* } */
+
+ if (brisk_mail($usr_obj->email, $subj, $body_txt, $body_htm) == FALSE) {
+ // mail error
+ fprintf(STDERR, "ERROR: mail send FAILED\n");
+ break;
+ }
+ $status .= sprintf("user delete for %s: SUCCESS<br>", $usr_obj->login);
+ $bdb->transaction('COMMIT');
+ $res = TRUE;
+ } while(FALSE);
+ if ($res == FALSE) {
+ $status .= sprintf("Error occurred during accept action<br>");
+ if ($is_trans)
+ $bdb->transaction('ROLLBACK');
+ break;
+ }
+ printf("Registration %s for login %s deleted<br>\n", $usr_obj->code, $usr_obj->login);
+ }
+ }
else {
do {
if (($bdb = BriskDB::create()) == FALSE) {
SELECT usr.*, guar.login AS guar_login
FROM %susers AS usr
JOIN %susers AS guar ON guar.code = usr.guar_code
- WHERE ( (usr.type & (CAST (X'%x' as integer))) = (CAST (X'%x' as integer)) )
- AND usr.disa_reas = %d;",
+ WHERE usr.type & (CAST (X'%x' as integer)) = (CAST (X'%x' as integer))
+ AND usr.disa_reas = %d ORDER BY usr.lintm;",
$G_dbpfx, $G_dbpfx,
- USER_FLAG_TY_ALL, USER_FLAG_TY_DISABLE,
+ USER_FLAG_TY_DISABLE, USER_FLAG_TY_DISABLE,
USER_DIS_REA_NU_TOBECHK);
if (($usr_pg = pg_query($bdb->dbconn->db(), $usr_sql)) == FALSE) {
log_crit("stat-day: select from tournaments failed");
}
$usr_n = pg_numrows($usr_pg);
- $tab_lines = "<tr><th></th><th>User</th><th>Guar</th><th>Date</th></tr>";
+ $tab_lines = "<tr><th></th><th>User</th><th>EMail</th><th>Guar</th><th>Apprendice</th><th>Date</th></tr>";
for ($i = 0 ; $i < $usr_n ; $i++) {
$usr_obj = pg_fetch_object($usr_pg, $i);
- $tab_lines .= sprintf("<tr><td><input name=\"f_newuser%d\" type=\"checkbox\" %s></td><td>%s</td><td>%s</td><td>%s</td></tr>\n",
+ $tab_lines .= sprintf("<tr><td><input name=\"f_newuser%d\" type=\"checkbox\" %s></td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\n",
$usr_obj->code, ($nocheck ? "" : "CHECKED"),
- eschtml($usr_obj->login), eschtml($usr_obj->guar_login), $usr_obj->lintm);
+ eschtml($usr_obj->login), eschtml($usr_obj->email), eschtml($usr_obj->guar_login),
+ ($usr_obj->type & USER_FLAG_TY_APPR ? "Yes" : "No"),
+ $usr_obj->lintm);
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Brisk: email verified user management.</title>
+ <?php echo "$s_style"; ?>
</head>
<body>
<h2> E-mail verified user management.</h2>
<?php if ($status != "") { echo "$status"; } ?>
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="POST">
- <table>
+ <table class="the_tab">
<?php
echo $tab_lines;
?>