X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fdbase_file.phh;fp=web%2FObj%2Fdbase_file.phh;h=2fb3178a2fdc1abb8dff5d29be4c9c8256586b2b;hb=e7958819c64c6a5aeb2ee568fe187d3f0389195f;hp=0000000000000000000000000000000000000000;hpb=8bb224a0ce40e72e2c3f1ae82957cd10e449c22b;p=brisk.git diff --git a/web/Obj/dbase_file.phh b/web/Obj/dbase_file.phh new file mode 100644 index 0000000..2fb3178 --- /dev/null +++ b/web/Obj/dbase_file.phh @@ -0,0 +1,174 @@ +item = array( new LoginDBItem(1, "uno", md5("one"), "pippo@pluto.com", USER_FLAG_TY_SUPER), + new LoginDBItem(2, "due", md5("two"), "pippo@pluto.com", USER_FLAG_TY_NORM), + new LoginDBItem(3, "a_b", md5("abb"), "pippo@pluto.com", USER_FLAG_TY_NORM), + new LoginDBItem(4, "tre", md5("three"), "pippo@pluto.com", USER_FLAG_TY_NORM) ); + } + $this->item_n = count($this->item); + log_main("LoginDB create:end"); + } + + function count() + { + return ($this->item_n); + } + + function login_exists($login) + { + log_main("login_exists: ".$login); + + /* check the existence of the nick in the LoginDB */ + for ($i = 0 ; $i < $this->item_n ; $i++) { + if (strcasecmp($this->item[$i]->login, $login) == 0) { + log_main("login[".$i."]: ".$this->item[$i]->login); + return (TRUE); + } + } + return (FALSE); + } + + function getlogin_byidx($idx) + { + if ($idx >= $this->item_n) + return FALSE; + return ($this->item[$idx]->login); + } + + function &getitem_bylogin($login, &$id) + { + GLOBAL $G_false; + + log_main("login_exists: ".$login); + + /* check the existence of the nick in the LoginDB */ + for ($i = 0 ; $i < $this->item_n ; $i++) { + if (strcasecmp($this->item[$i]->login, $login) == 0) { + log_main("login[".$i."]: ".$this->item[$i]->login); + $ret = &$this->item[$i]; + $id = $i; + return ($ret); + } + } + $id = -1; + return ($G_false); + } + + function getmail($login) + { + log_main("getmail"); + + /* check the existence of the nick in the LoginDB */ + for ($i = 0 ; $i < $this->item_n ; $i++) { + if (strcasecmp($this->item[$i]->login, $login) == 0) { + log_main("login[".$i."]: ".$this->item[$i]->login); + return ($this->item[$i]->email); + } + } + return (FALSE); + } + + function gettype($login) + { + log_main("getmail"); + + /* check the existence of the nick in the LoginDB */ + for ($i = 0 ; $i < $this->item_n ; $i++) { + if (strcasecmp($this->item[$i]->login, $login) == 0) { + log_main("login[".$i."]: ".$this->item[$i]->login); + return ($this->item[$i]->type); + } + } + return (FALSE); + } + + function &login_verify($login, $pass) + { + GLOBAL $G_false; + + $ret = &$G_false; + + log_main("login_verify: ".$login); + + /* check the existence of the nick in the LoginDB */ + for ($i = 0 ; $i < $this->item_n ; $i++) { + log_main("login_verify: LOOP"); + if (strcasecmp($this->item[$i]->login, $login) == 0) { + log_main("login[".$i."]: ".$this->item[$i]->login); + + /* if it exists check for a valid challenge */ + if (($a_sem = Challenges::lock_data()) != FALSE) { + + if (($chals = &Challenges::load_data()) != FALSE) { + for ($e = 0 ; $e < $chals->item_n ; $e++) { + + log_main("challenge[".$i."]: ".$chals->item[$e]->login); + if (strcmp($login, $chals->item[$e]->login) == 0) { + log_main("login_verify [".$pass."] with [".md5($chals->item[$e]->token.$this->item[$i]->pass)."]"); + + if (strcmp($pass , md5($chals->item[$e]->token.$this->item[$i]->pass)) == 0) { + log_main("login_verify SUCCESS for ".$login); + + $chals->rem($login); + $ret = &$this->item[$i]; + break; + } + } + } // end for ($e = 0 ... + } + + if ($chals->ismod()) { + Challenges::save_data(&$chals); + } + + Challenges::unlock_data($a_sem); + } + break; + } // if (strcasecmp($this->item[$i]->login, ... + } + + return ($ret); + } +} // End class LoginDB + +?> \ No newline at end of file