moving to an overload function
authorpaulr <me@pjr.cc>
Tue, 16 Nov 2010 05:04:23 +0000 (16:04 +1100)
committerpaulr <me@pjr.cc>
Tue, 16 Nov 2010 05:04:23 +0000 (16:04 +1100)
doco/datafunctions.txt
doco/datastructure.txt [new file with mode: 0644]
doco/readme.txt
lib/lib.php

index 2ee267e..c85226a 100644 (file)
@@ -1,3 +1,6 @@
+DEPRECATED INFO - IGNORE THIS!
+
+
 Put data Functions:
 
 Token type:
diff --git a/doco/datastructure.txt b/doco/datastructure.txt
new file mode 100644 (file)
index 0000000..6ba590b
--- /dev/null
@@ -0,0 +1,5 @@
+$data["tokenkey"] = "...."; // the token key
+$data["tokentype"] = "...."; // the token type
+$data["tokencounter"] = "...."; // the token counter for hotp
+$data["tokenalgorithm"] = "...."; // the token algorithm (not supported by ga yet)
+$data["tokentimer"] = "...." // the token timer (For totp) and not supported by ga yet
index 9067210..8c8c9a8 100644 (file)
@@ -50,6 +50,7 @@ Usage
 =====
 ... TODO ...
 
+
 Complications
 =============
 
index 169b9a8..42bc599 100644 (file)
@@ -44,12 +44,41 @@ class GoogleAuthenticator {
                $this->getDataFunction = $getDataFunction;
        }
        
-       // this could get ugly for large databases.. we'll worry about that if it ever happens.
-       function getUserList() {
-               $func = $this->getDataFunction;
-               return $func("userlist", "");
+       abstract function getData($username);
+       abstract function putData($username, $data);
+       abstract function getUsers();
+       
+       // a function to create an empty data structure
+       function createEmptyData() {
+               $data["tokenkey"] = ""; // the token key
+               $data["tokentype"] = ""; // the token type
+               $data["tokentimer"] = ""; // the token timer (For totp) and not supported by ga yet             
+               $data["tokencounter"] = ""; // the token counter for hotp
+               $data["tokenalgorithm"] = ""; // the token algorithm (not supported by ga yet)
+               
+               return $data;
        }
        
+       // an internal funciton to get 
+       function internalGetData($username) {
+               $data = getData($username);
+               $deco = unserialize(base64_decode($data));
+               
+               if(!$deco) {
+                       $deco = createEmptyData();
+               }
+               
+               return $deco;
+       }
+       
+
+       function internalPutData($username, $data) {
+               $enco = base64_encode(serialize($data));
+               
+               return putData($username, $enco);
+       }
+       
+
        // set the token type the user it going to use.
        // this defaults to HOTP - we only do 30s token
        // so lets not be able to set that yet
@@ -59,8 +88,8 @@ class GoogleAuthenticator {
                        return false;
                }
                
-               $put["username"] = $username;
-               $put["tokentype"] = $tokentype;
+               $data = getData($username);
+               $data["tokentype"] = $tokentype;
                $func = $this->putDataFunction;
                $func("settokentype", $put);