From 39af649d52ddb6da8f734841137412d2dcb5b7c8 Mon Sep 17 00:00:00 2001 From: Cassio de Campos Date: Tue, 24 Oct 2017 10:52:02 +0100 Subject: bf and revert update --- src/admin/misc.php | 131 +++++++++++++++++++++++++++++------------------------ 1 file changed, 73 insertions(+), 58 deletions(-) (limited to 'src/admin') diff --git a/src/admin/misc.php b/src/admin/misc.php index 8000841..eb4a86f 100644 --- a/src/admin/misc.php +++ b/src/admin/misc.php @@ -42,6 +42,7 @@ require 'header.php'; + Done\n"; else echo "
Error (likely permission/ownership issues)
\n"; } -if (isset($_POST["Submit4"]) && $_POST["Submit5"] == "Full clear") { +if (isset($_POST["Submit5"]) && $_POST["Submit5"] == "Full clear") { if(fixbocadir(dirname(__DIR__),true)) echo "
Done
\n"; else echo "
Error (likely permission/ownership issues)
\n"; } -if (isset($_POST["Submit4"]) && $_POST["Submit6"] == "Update BOCA") { +if (isset($_POST["Submit6"]) && $_POST["Submit6"] == "Update BOCA") { require('..' . $ds . 'versionnum.php'); $curv = split('.',$BOCAVERSION); $dir = dirname(__DIR__); @@ -90,71 +91,85 @@ if (isset($_POST["Submit4"]) && $_POST["Submit6"] == "Update BOCA") { if($curv[0] != $newv[0] || $curv[1] != $newv[1]) echo "
Cannot updated because of major version difference
"; else { - if(updatebocafile($dir, $dir . $ds . "private" . $ds . "newboca." . $t, $t) === false) - echo "
Error updating BOCA
\n"; - else { - echo "
Updated to " . $BOCAVERSION . "\n
\n"; - } + $q = updatebocafile($dir, $dir . $ds . "private" . $ds . "newboca." . $t, $t); + echo "
" . $q . " files updated to " . $BOCAVERSION . "\n
\n"; + $str = @file_get_contents($dir . $ds . "private" . $ds . "updateboca.log"); + @file_put_contents($dir . $ds . "private" . $ds . "updateboca.log", $str . $t . "\n"); } } else { echo "
Downloaded file corrupted
"; } } else echo "
Download error
"; } -$privatedir = $_SESSION['locr'] . $ds . "private"; -$remotedir = $_SESSION['locr'] . $ds . "private" . $ds . "remotescores"; -$destination = $remotedir . $ds ."scores.zip"; -if(is_writable($remotedir)) { - if(($fp = @fopen($destination . ".lck",'x')) !== false) { - if($doscore) { - if (($s = DBSiteInfo($_SESSION["usertable"]["contestnumber"],$_SESSION["usertable"]["usersitenumber"])) == null) - ForceLoad("index.php"); - echo "
\n";
-      echo "Building scores\n";
-      $level=$s["sitescorelevel"];
-      $data0 = array();
-      if($level>0) {
-	list($score,$data0) = DBScoreSite($_SESSION["usertable"]["contestnumber"], 
-					  $_SESSION["usertable"]["usersitenumber"], 0, -1);
-      }
-      $ct=DBGetActiveContest();
-      $localsite=$ct['contestlocalsite'];
-      $fname = $privatedir . $ds . "score_localsite_" . $localsite . "_x"; // . md5($_SERVER['HTTP_HOST']);
-      @file_put_contents($fname . ".tmp",base64_encode(serialize($data0)));
-      @rename($fname . ".tmp",$fname . ".dat");
-      
-      $data0 = array();
-      if($level>0) {
-	list($score,$data0) = DBScoreSite($_SESSION["usertable"]["contestnumber"], 
-					  $_SESSION["usertable"]["usersitenumber"], 1, -1);
-      }
-      $ct=DBGetActiveContest();
-      $localsite=$ct['contestlocalsite'];
-      $fname = $remotedir . $ds . "score_site" . $localsite . "_" . $localsite . "_x"; // . md5($_SERVER['HTTP_HOST']);
-      @file_put_contents($fname . ".tmp",base64_encode(serialize($data0)));
-      @rename($fname . ".tmp",$fname . ".dat");
-      echo "Transferring scores\n";
-      scoretransfer($fname . ".dat", $localsite);
-      echo "Saving scores\n";
-      if(@create_zip($remotedir,glob($remotedir . '/*.dat'),$fname . ".tmp") != 1) {
-	LOGError("Cannot create score zip file");
-	if(@create_zip($remotedir,array(),$fname . ".tmp") == 1)
+if (isset($_POST["Submit7"]) && $_POST["Submit7"] == "Revert Update") {
+  $str = @file($dir . $ds . "private" . $ds . "updateboca.log");
+  $t = trim($str[count($str)-1]);
+  unset($str[count($str)-1]);
+  $str = implode("\n", $str);
+  $dir = dirname(__DIR__);
+  fixbocadir($dir);
+  echo "
Reverting last update\n";
+  $q = revertupdatebocafile($dir, $t);
+  echo $q . " files reverted properly\n";
+  echo "
"; + @file_put_contents($dir . $ds . "private" . $ds . "updateboca.log", $str); +} +if($dotransfer || $doscore || $dotransferall) { + $privatedir = $_SESSION['locr'] . $ds . "private"; + $remotedir = $_SESSION['locr'] . $ds . "private" . $ds . "remotescores"; + $destination = $remotedir . $ds ."scores.zip"; + if(is_writable($remotedir)) { + if(($fp = @fopen($destination . ".lck",'x')) !== false) { + if($doscore) { + if (($s = DBSiteInfo($_SESSION["usertable"]["contestnumber"],$_SESSION["usertable"]["usersitenumber"])) == null) + ForceLoad("index.php"); + echo "
\n";
+	echo "Building scores\n";
+	$level=$s["sitescorelevel"];
+	$data0 = array();
+	if($level>0) {
+	  list($score,$data0) = DBScoreSite($_SESSION["usertable"]["contestnumber"], 
+					    $_SESSION["usertable"]["usersitenumber"], 0, -1);
+	}
+	$ct=DBGetActiveContest();
+	$localsite=$ct['contestlocalsite'];
+	$fname = $privatedir . $ds . "score_localsite_" . $localsite . "_x"; // . md5($_SERVER['HTTP_HOST']);
+	@file_put_contents($fname . ".tmp",base64_encode(serialize($data0)));
+	@rename($fname . ".tmp",$fname . ".dat");
+	
+	$data0 = array();
+	if($level>0) {
+	  list($score,$data0) = DBScoreSite($_SESSION["usertable"]["contestnumber"], 
+					    $_SESSION["usertable"]["usersitenumber"], 1, -1);
+	}
+	$ct=DBGetActiveContest();
+	$localsite=$ct['contestlocalsite'];
+	$fname = $remotedir . $ds . "score_site" . $localsite . "_" . $localsite . "_x"; // . md5($_SERVER['HTTP_HOST']);
+	@file_put_contents($fname . ".tmp",base64_encode(serialize($data0)));
+	@rename($fname . ".tmp",$fname . ".dat");
+	echo "Transferring scores\n";
+	scoretransfer($fname . ".dat", $localsite);
+	echo "Saving scores\n";
+	if(@create_zip($remotedir,glob($remotedir . '/*.dat'),$fname . ".tmp") != 1) {
+	  LOGError("Cannot create score zip file");
+	  if(@create_zip($remotedir,array(),$fname . ".tmp") == 1)
+	    @rename($fname . ".tmp",$destination);
+	} else {
 	  @rename($fname . ".tmp",$destination);
-      } else {
-	@rename($fname . ".tmp",$destination);
+	}
+	@fclose($fp);
+      }
+      if($dotransfer) {
+	echo "Processing other data\n";
+	getMainXML($_SESSION["usertable"]["contestnumber"],10,$dotransferall);
+	echo "
\n"; } - @fclose($fp); - } - if($dotransfer) { - echo "Processing other data\n"; - getMainXML($_SESSION["usertable"]["contestnumber"],10,$dotransferall); - echo "
\n"; - } - @unlink($destination . ".lck"); - } else { - if(file_exists($destination . ".lck") && filemtime($destination . ".lck") < time() - 120) @unlink($destination . ".lck"); - echo "
Transfers locked by other process - try again soon
\n"; + } else { + if(file_exists($destination . ".lck") && filemtime($destination . ".lck") < time() - 120) + @unlink($destination . ".lck"); + echo "
Transfers locked by other process - try again soon
\n"; + } } } ?> -- cgit v1.2.3