X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Fusermgmt.php;h=24948a135f3ead414c8ca09b2af43f7d57011109;hb=a06e072cbc877921263a20150915ad09fc79d260;hp=3aa9fed3300376a45709f59c4914de11d4f08767;hpb=d9138fdcbe87ae699ba97079812ff489b3566b2e;p=brisk.git
diff --git a/web/usermgmt.php b/web/usermgmt.php
index 3aa9fed..24948a1 100644
--- a/web/usermgmt.php
+++ b/web/usermgmt.php
@@ -97,7 +97,7 @@ function check_auth()
$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
@@ -226,9 +226,9 @@ SELECT usr.*, guar.login AS guar_login
$subj = $mlang_indwr['nu_msubj'][$G_lang];
if (($usr_obj->type & USER_FLAG_TY_APPR) == USER_FLAG_TY_APPR) {
$body_txt = sprintf($mlang_indwr['ap_mtext'][$G_lang],
- $cli_name, $confirm_page);
+ $usr_obj->login, $confirm_page);
$body_htm = sprintf($mlang_indwr['ap_mhtml'][$G_lang],
- $cli_name, $confirm_page);
+ $usr_obj->login, $confirm_page);
}
else {
$body_txt = sprintf($mlang_indwr['nu_mtext'][$G_lang],
@@ -263,6 +263,73 @@ SELECT usr.*, guar.login AS guar_login
}
}
} // 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.
",
+ $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
", $usr_obj->login);
+ $bdb->transaction('COMMIT');
+ $res = TRUE;
+ } while(FALSE);
+ if ($res == FALSE) {
+ $status .= sprintf("Error occurred during delete action
");
+ if ($is_trans)
+ $bdb->transaction('ROLLBACK');
+ break;
+ }
+ }
+ } // else if ($action == "accept") {
+
do {
@@ -519,8 +586,6 @@ SELECT usr.*, guar.login AS guar_login
}
exit;
}
-
-
else if ($action == "delete") {
foreach($_POST as $key => $value) {
if (substr($key, 0, 9) != "f_newuser")
@@ -569,7 +634,7 @@ SELECT usr.*, guar.login AS guar_login
$G_dbpfx, $usr_obj->code);
if (($del_pg = pg_query($bdb->dbconn->db(), $del_sql)) == FALSE) {
- log_crit("stat-day: select from tournaments failed");
+ log_crit(sprintf("Delete user %d failed", $usr_obj->code));
break;
}