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); } function count() { return ($this->item_n); } function login_exists($login) { log_main("login_exists: ".$login); /* check the existence of the nick in the BriskDB */ 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) { log_main("login_exists: ".$login); /* check the existence of the nick in the BriskDB */ 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 (FALSE); } function getmail($login) { log_main("getmail"); /* check the existence of the nick in the BriskDB */ 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 BriskDB */ 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) { $ret = FALSE; log_main("login_verify: ".$login); /* check the existence of the nick in the BriskDB */ 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(TRUE)) != 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); } function bin5_points_save($date, $table, $tidx, $action, $ucodes, $pts) { return TRUE; } } // End class BriskDB ?>