X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fauth.phh;h=5f4426d9ef205a9e85760d8ed3fc159864a658f9;hb=f112164966a2add8319df653d61f44a10333b990;hp=6515f0047496449986264f976b7a5584ecc55417;hpb=09c75c33b6a297891cc3f4a0990a31003beab5b9;p=brisk.git diff --git a/web/Obj/auth.phh b/web/Obj/auth.phh index 6515f00..5f4426d 100644 --- a/web/Obj/auth.phh +++ b/web/Obj/auth.phh @@ -2,7 +2,7 @@ /* * brisk - auth.phh * - * Copyright (C) 2006-2008 Matteo Nastasi + * Copyright (C) 2006-2009 Matteo Nastasi * mailto: nastasi@alternativeoutput.it * matteo.nastasi@milug.org * web: http://www.alternativeoutput.it @@ -27,6 +27,8 @@ define(CHAL_SHM_DIMS_MAX, 65536); define(CHAL_SHM_DIMS_DLT, 16384); define(CHAL_VALID_TIME, 15); define(CHAL_GARBAGE_TIMEOUT, 5); +define(BRISK_AUTH_CONF, "brisk_auth.conf.pho"); + class Challenge { var $login; @@ -64,11 +66,13 @@ class Challenges { { $chal = null; + log_auth("xxx", sprintf("Challenges::add [%s]\n", $login)); // FIXME Checks here if ($login == '') { return ($G_false); } + // log_auth("xxx", "LOOPI tstamp: ".$this->item[$i]->tstamp." curtime: ".$curtime); if (($chal = new Challenge($login, $token, $ip, $tstamp)) == null) { return ($G_false); @@ -118,7 +122,7 @@ class Challenges { $ismod = FALSE; for ($i = 0 ; $i < $this->item_n ; $i++) { - log_auth("LOOPI item: ".$i." tstamp: ".$this->item[$i]->tstamp." curtime: ".$curtime); + log_auth("xxx", "LOOPI item: ".$i." tstamp: ".$this->item[$i]->tstamp." curtime: ".$curtime); if ($this->item[$i]->tstamp < $curtime) { for ($e = $i ; $e < ($this->item_n - 1) ; $e++) { $this->item[$e] = $this->item[$e + 1]; @@ -126,14 +130,14 @@ class Challenges { $i--; $this->item_n--; - log_auth("LOOPI unset: ".$this->item_n); + log_auth("xxx", "LOOPI unset: ".$this->item_n); unset($this->item[$this->item_n]); $ismod = TRUE; $this->mod = TRUE; } } - log_auth("LOOPI AFTER: ".count($this->item)." _n:" .$this->item_n ); + log_auth("xxx", "LOOPI AFTER: ".count($this->item)." _n:" .$this->item_n ); $this->garbage_timeout = $curtime + CHAL_GARBAGE_TIMEOUT; @@ -244,13 +248,11 @@ class Challenges { function lock_data() { if (($tok = @ftok(FTOK_PATH."/challenges", "B")) == -1) { - echo "FTOK FAILED"; - exit; + return (FALSE); } // echo "FTOK ".$tok."
"; if (($res = sem_get($tok)) == FALSE) { - echo "SEM_GET FAILED"; - exit; + return (FALSE); } if (sem_acquire($res)) { log_lock("LOCK challenges"); @@ -274,11 +276,13 @@ class Challenges { class LoginDBItem { var $login; var $pass; + var $email; - function LoginDBItem($login, $pass) + function LoginDBItem($login, $pass, $email) { $this->login = $login; $this->pass = $pass; + $this->email = $email; } } @@ -292,22 +296,27 @@ class LoginDB { GLOBAL $DOCUMENT_ROOT; log_main("LoginDB create:start"); - if (file_exists("$DOCUMENT_ROOT/Etc/brisk_auth.conf.pho")) { - require("$DOCUMENT_ROOT/Etc/brisk_auth.conf.pho"); + if (file_exists("$DOCUMENT_ROOT/Etc/".BRISK_AUTH_CONF)) { + require("$DOCUMENT_ROOT/Etc/".BRISK_AUTH_CONF); } else { - $this->item = array( new LoginDBItem("uno", md5("one")), - new LoginDBItem("due", md5("two")), - new LoginDBItem("a_b", md5("abb")), - new LoginDBItem("tre", md5("three")) ); + $this->item = array( new LoginDBItem("uno", md5("one"), "pippo@pluto.com"), + new LoginDBItem("due", md5("two"), "pippo@pluto.com"), + new LoginDBItem("a_b", md5("abb"), "pippo@pluto.com"), + new LoginDBItem("tre", md5("three"), "pippo@pluto.com") ); } $this->item_n = count($this->item); log_main("LoginDB create:end"); } + function count() + { + return ($this->item_n); + } + function login_exists($login) { - log_main("login_verify"); + log_main("login_exists: ".$login); /* check the existence of the nick in the LoginDB */ for ($i = 0 ; $i < $this->item_n ; $i++) { @@ -319,14 +328,55 @@ class LoginDB { 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 login_verify($login, $pass) { $ret = FALSE; - log_main("login_verify"); + 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);