copyright updated and mop user status added
[brisk.git] / web / Obj / auth.phh
index a52bc78..2d94962 100644 (file)
@@ -2,7 +2,7 @@
 /*
  *  brisk - auth.phh
  *
- *  Copyright (C) 2006-2008 Matteo Nastasi
+ *  Copyright (C) 2006-2011 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;
@@ -274,12 +276,37 @@ class Challenges {
 class LoginDBItem {
   var $login;
   var $pass;
+  var $email;
+  var $type;
 
-  function LoginDBItem($login, $pass)
+  function LoginDBItem($login, $pass, $email, $type)
   {
     $this->login = $login;
     $this->pass  = $pass;
+    $this->email = $email;
+    $this->type  = $type;
+  }
+
+  function loginget()
+  {
+      return $this->login;
+  }
+
+  function passget()
+  {
+      return $this->pass;
   }
+
+  function emailget()
+  {
+      return $this->email;
+  }
+
+  function typeget()
+  {
+      return $this->type;
+  }
+
 }
 
 class LoginDB {
@@ -292,22 +319,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 +351,71 @@ class LoginDB {
     return (FALSE);
   }
 
-  function login_verify($login, $pass)
+  function getlogin_byidx($idx)
   {
-    $ret = FALSE;
+    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");
+    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);
 
@@ -344,7 +433,7 @@ class LoginDB {
                   log_main("login_verify SUCCESS for ".$login);
    
                   $chals->rem($login);
-                  $ret = TRUE;
+                  $ret = &$this->item[$i];
                   break;
                 }
               }