From a9aa438ea0558eb0044cf1e54a9190ddb41b65e5 Mon Sep 17 00:00:00 2001 From: cassio Date: Tue, 2 Jul 2013 09:44:46 +0400 Subject: restructuring of boca's git --- boca-1.5.2/src/flog.php | 229 ------------------------------------------------ 1 file changed, 229 deletions(-) delete mode 100644 boca-1.5.2/src/flog.php (limited to 'boca-1.5.2/src/flog.php') diff --git a/boca-1.5.2/src/flog.php b/boca-1.5.2/src/flog.php deleted file mode 100644 index e52e167..0000000 --- a/boca-1.5.2/src/flog.php +++ /dev/null @@ -1,229 +0,0 @@ -. -//////////////////////////////////////////////////////////////////////////////// -// Last modified 21/jul/2012 by cassio@ime.usp.br - -function DBDropLogTable() { - $c = DBConnect(); - $r = DBExec($c, "drop table \"logtable\"", "DBDropLogTable(drop table)"); -} -function DBCreateLogTable() { - $c = DBConnect(); - $conf = globalconf(); - if($conf["dbuser"]=="") $conf["dbuser"]="bocauser"; - $r = DBExec($c, " -CREATE TABLE \"logtable\" ( - \"lognumber\" serial, -- (serial para o log) - \"contestnumber\" int4 NOT NULL, -- (id do concurso) - \"sitenumber\" int4 NOT NULL, -- (id do site local) - \"loguser\" int4, -- (usuario envolvido com o log) - \"logip\" varchar(20) NOT NULL, -- (numero do site do usuario envolvido) - \"logdate\" int4 NOT NULL, -- (dia/hora da criacao deste registro) - \"logtype\" varchar(20) NOT NULL, -- (tipo de registro: error, warn, info, debug) - \"logdata\" text NOT NULL, -- (descricao do registro) - \"logstatus\" varchar(20) DEFAULT '', -- (status do registro) - CONSTRAINT \"log_pkey\" PRIMARY KEY (\"lognumber\"), - CONSTRAINT \"site_fk\" FOREIGN KEY (\"contestnumber\", \"sitenumber\") - REFERENCES \"sitetable\" (\"contestnumber\", \"sitenumber\") - ON DELETE CASCADE ON UPDATE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE, - CONSTRAINT \"loguser\" FOREIGN KEY (\"contestnumber\", \"loguser\", \"sitenumber\") - REFERENCES \"usertable\" (\"contestnumber\", \"usernumber\", \"usersitenumber\") - ON DELETE CASCADE ON UPDATE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE -)", "DBCreateLogTable(create table)"); - $r = DBExec($c, "REVOKE ALL ON \"logtable\" FROM PUBLIC", "DBCreateLogTable(revoke public)"); - $r = DBExec($c, "GRANT INSERT, SELECT ON \"logtable\" TO \"".$conf["dbuser"]."\"", "DBCreateLogTable(grant bocauser)"); - $r = DBExec($c, "CREATE INDEX \"log_index\" ON \"logtable\" USING btree ". - "(\"contestnumber\" int4_ops, \"sitenumber\" int4_ops, \"logdate\" int4_ops)", - "DBCreateLogTable(create log_index)"); - $r = DBExec($c, "CREATE INDEX \"log_index2\" ON \"logtable\" USING btree ". - "(\"contestnumber\" int4_ops, \"loguser\" int4_ops, \"sitenumber\" int4_ops)", - "DBCreateLogTable(create log_index2)"); - $r = DBExec($c, "REVOKE ALL ON \"logtable_lognumber_seq\" FROM PUBLIC", "DBCreateLogTable(revoke public seq)"); - $r = DBExec($c, "GRANT ALL ON \"logtable_lognumber_seq\" TO \"".$conf["dbuser"]."\"", "DBCreateLogTable(grant bocauser seq)"); -} - -////////////////////funcoes para logar//////////////////////////////////////////////////////////////// -function DBNewLog($contest, $site, $user, $type, $ip, $data, $status) { - $t = time(); - $data = str_replace("'", "\"", $data); - DBExecNoSQLLog ("insert into logtable (contestnumber, sitenumber, loguser, logdate, logtype, " . - "logip, logdata, logstatus) values ($contest, $site, $user, $t, '$type', '$ip', '$data', '$status')", - "DBNewLog(insert log)"); -} -function DBGetLogs($o, $contest, $site, $user, $type, $ip, $limit) { - $c = DBConnect(); - $where = ""; - if ($site != "") $where .= "sitenumber=$site and "; - if ($user != "") $where .= "loguser=$user and "; - if ($type != "") $where .= "logtype='$type' and "; - if ($ip != "") $where .= "logip='$ip' and "; - $where .= "contestnumber=$contest"; - switch ($o) { - case "user": $order="contestnumber, sitenumber, loguser, logdate desc"; break; - case "type": $order="contestnumber, sitenumber, logtype, logdate desc"; break; - case "ip": $order="contestnumber, sitenumber, logip, logdate desc"; break; - default: $order="contestnumber, sitenumber, logdate desc"; break; - } - $r = DBExec ($c, "select contestnumber as contest, sitenumber as site, loguser as user, logdate as date, " . - "logtype as type, logip as ip, logdata as data, logstatus as status from logtable " . - " where $where order by $order limit $limit", "DBGetLogs(get logs)"); - $n = DBnlines($r); - $a = array(); - for ($i=0;$i<$n;$i++) - $a[$i] = DBRow($r,$i); - return $a; -} - -//funcao para fazer o login de um usuario. Vai procurar por um contest ativo, verificar qual o site -//local, e entao procurar pelo usuario no site local do contest ativo. Alem disso, verifica outras -//flags, como logins habilitados, ip correto, se usuario ja esta logado, etc -//$name eh o nome do usuario -//$pass eh o password -function DBLogIn($name,$pass, $msg=true) { - $b = DBGetRow("select * from contesttable where contestnumber=0", 0, null, "DBLogIn(get template contest)"); - if ($b != null) { - $r = DBLogInContest($name, $pass, $b["contestnumber"], false); - if($r !== false) return $r; - } - $b = DBGetRow("select * from contesttable where contestactive=true", 0, null, "DBLogIn(get active contest)"); - if ($b != null) { - $r = DBLogInContest($name, $pass, $b["contestnumber"], $msg); - if ($r !== false) return $r; - } else { - LOGLevel("There is no active or template contest.",0); - MSGError("There is no active or template contest."); - } - return false; -} -function DBLogInContest($name,$pass,$contest,$msg=true) { - $b = DBGetRow("select * from contesttable where contestnumber=$contest", 0, null, "DBLogIn(get active contest)"); - if ($b == null) { - LOGLevel("There is no contest $contest.",0); - if($msg) MSGError("There is no contest $contest, contact an admin."); - return false; - } - $d = DBSiteInfo($b["contestnumber"], $b["contestlocalsite"],null,false); - if ($d == null) { - if($msg) MSGError("There is no active site, contact an admin."); - return false; - } - $a = DBGetRow("select * from usertable where username='$name' and contestnumber=". - $b["contestnumber"]." and " . - "usersitenumber=".$b["contestlocalsite"], 0, null, "DBLogIn(get user)"); - if ($a == null) { - if($msg) { - LOGLevel("User $name tried to log in contest $contest but it does not exist.",2); - MSGError("User does not exist or incorrect password."); - } - return false; - } - $a = DBUserInfo($b["contestnumber"], $b["contestlocalsite"],$a['usernumber'],null,false); - $_SESSION['usertable'] = $a; - $p = myhash($a["userpassword"] . session_id()); - $_SESSION['usertable']['userpassword'] = $p; - if ($a["userpassword"] != "" && $p != $pass) { - LOGLevel("User $name tried to log in contest $contest but password was incorrect.",2); - if($msg) MSGError("Incorrect password."); - unset($_SESSION["usertable"]); - return false; - } - if ($d["sitepermitlogins"]=="f" && $a["usertype"] != "admin" && $a["usertype"] != "judge") { - LOGLevel("User $name tried to login contest $contest but logins are denied.",2); - if($msg) MSGError("Logins are not allowed."); - unset($_SESSION["usertable"]); - return false; - } - if ($a["userenabled"] != "t") { - LOGLevel("User $name tried to log in contest $contest but it is disabled.",2); - if($msg) MSGError("User disabled."); - unset($_SESSION["usertable"]); - return false; - } - $gip=getIP(); - if ($a["userip"] != $gip && $a["userip"] != "" && $a["usertype"] != "score") { - LOGLevel("User $name is using two different IPs: " . $a["userip"] . - "(" . dateconv($a["userlastlogin"]) .") and " . $gip,1); - if($msg && $a["usertype"] != "admin") MSGError("You are using two distinct IPs. Admin notified."); - } - if ($a["userpermitip"] != "") { - $ips=explode(';',$a["userpermitip"]); - $gips=explode(';',$gip); - if(count($gips) < count($ips)) { - IntrusionNotify("Invalid IP: " . $gip); - ForceLoad("index.php"); - } - for($ipss=0;$ipss -- cgit v1.2.3