From 93e1d5108f4b36add2a87859f402245fca9f9e5f Mon Sep 17 00:00:00 2001 From: Cassio de Campos Date: Wed, 1 Nov 2017 10:21:55 +0000 Subject: soft delete of users --- src/admin/user.php | 6 ++++-- src/fcontest.php | 14 +++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/admin/user.php b/src/admin/user.php index a9017c4..466cb07 100644 --- a/src/admin/user.php +++ b/src/admin/user.php @@ -256,9 +256,11 @@ for ($i=0; $i < count($usr); $i++) { ($usr[$i]["usernumber"] != $_SESSION["usertable"]["usernumber"] || $usr[$i]["usersitenumber"] != $_SESSION["usertable"]["usersitenumber"])) echo " " . $usr[$i]["usernumber"] . "\n"; + $usr[$i]["usernumber"] . "\">" . $usr[$i]["usernumber"] . ""; else - echo " " . $usr[$i]["usernumber"] . "\n"; + echo " " . $usr[$i]["usernumber"]; + if($usr[$i]['userenabled'] != 't' && $usr[$i]['userlastlogin'] < 1) echo "(inactive)"; + echo "\n"; echo " " . $usr[$i]["usersitenumber"] . "\n"; echo " " . $usr[$i]["username"] . " \n"; diff --git a/src/fcontest.php b/src/fcontest.php index dc8a6d7..c529ef0 100644 --- a/src/fcontest.php +++ b/src/fcontest.php @@ -315,14 +315,22 @@ function DBDeleteUser($contest, $site, $user) { DBExec($c, "begin work"); DBExec($c, "lock table usertable"); $sql = "select * from usertable where usernumber=$user and usersitenumber=$site and " . - "contestnumber=$contest"; + "contestnumber=$contest for update"; $a = DBGetRow ($sql, 0); if ($a != null) { - $sql = "delete from usertable where usernumber=$user and usersitenumber=$site and " . + $sql = "update usertable set userenabled='f', userlastlogin=NULL, usersessionextra='', usersession='', updatetime=".time(). " where usernumber=$user and usersitenumber=$site and " . "contestnumber=$contest"; + // $sql = "delete from usertable where usernumber=$user and usersitenumber=$site and " . + // "contestnumber=$contest"; DBExec ($c, $sql); + $r = DBExec($c,"select runnumber as number, runsitenumber as site from runtable where contestnumber=$contestnumber and usernumber=$user and runsitenumber=$site for update"); + $n = DBnlines($r); + for ($i=0;$i<$n;$i++) { + $a = DBRow($r,$i); + DBRunDelete($a["number"],$a["site"],$contestnumber,$_SESSION["usertable"]["usernumber"],$_SESSION["usertable"]["usersitenumber"]); + } DBExec($c, "commit work"); - LOGLevel("User $user (site=$site,contest=$contest) removed.", 1); + LOGLevel("User $user (site=$site,contest=$contest) marked as inactive.", 1); return true; } else { DBExec($c, "rollback work"); -- cgit v1.2.3 From ba15ecc5643d364ed3eee9edff786f2987efcc85 Mon Sep 17 00:00:00 2001 From: Cassio de Campos Date: Wed, 1 Nov 2017 10:32:13 +0000 Subject: bf --- src/fcontest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fcontest.php b/src/fcontest.php index c529ef0..d00ce68 100644 --- a/src/fcontest.php +++ b/src/fcontest.php @@ -323,7 +323,7 @@ function DBDeleteUser($contest, $site, $user) { // $sql = "delete from usertable where usernumber=$user and usersitenumber=$site and " . // "contestnumber=$contest"; DBExec ($c, $sql); - $r = DBExec($c,"select runnumber as number, runsitenumber as site from runtable where contestnumber=$contestnumber and usernumber=$user and runsitenumber=$site for update"); + $r = DBExec($c,"select runnumber as number, runsitenumber as site from runtable where contestnumber=$contest and usernumber=$user and runsitenumber=$site for update"); $n = DBnlines($r); for ($i=0;$i<$n;$i++) { $a = DBRow($r,$i); -- cgit v1.2.3