]> git.wh0rd.org - tt-rss.git/blobdiff - functions.php
optional login form/http basic auth support
[tt-rss.git] / functions.php
index 42d00c060e50dc68b9bd1e87e77bb773993e67c0..67575cbb24f72da990b1efdafaa081f952efd5da 100644 (file)
@@ -4,7 +4,8 @@
        require_once 'config.php';
        require_once 'db-prefs.php';
 
-       $_SESSION["uid"] = PLACEHOLDER_UID; // FIXME: placeholder
+//     $_SESSION["uid"] = PLACEHOLDER_UID; // FIXME: placeholder
+//     $_SESSION["name"] = PLACEHOLDER_NAME;
 
        define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');
 
                }
        }
 
+       function initialize_user_prefs($link, $uid) {
+
+               $uid = db_escape_string($uid);
+
+               db_query($link, "BEGIN");
+
+               $result = db_query($link, "SELECT pref_name,def_value FROM ttrss_prefs");
+               
+               $u_result = db_query($link, "SELECT pref_name 
+                       FROM ttrss_user_prefs WHERE owner_uid = '$uid'");
+
+               $active_prefs = array();
+
+               while ($line = db_fetch_assoc($u_result)) {
+                       array_push($active_prefs, $line["pref_name"]);                  
+               }
+
+               while ($line = db_fetch_assoc($result)) {
+                       if (array_search($line["pref_name"], $active_prefs) === FALSE) {
+//                             print "adding " . $line["pref_name"] . "<br>";
+
+                               db_query($link, "INSERT INTO ttrss_user_prefs
+                                       (owner_uid,pref_name,value) VALUES 
+                                       ('$uid', '".$line["pref_name"]."','".$line["def_value"]."')");
+
+                       }
+               }
+
+               db_query($link, "COMMIT");
+
+       }
+       
+       function authenticate_user($link, $login, $password) {
+
+               $pwd_hash = 'SHA1:' . sha1($password);
+
+               $result = db_query($link, "SELECT id,login FROM ttrss_users WHERE 
+                       login = '$login' AND (pwd_hash = '$password' OR pwd_hash = '$pwd_hash')");
+
+               if (db_num_rows($result) == 1) {
+                       $_SESSION["uid"] = db_fetch_result($result, 0, "id");
+                       $_SESSION["name"] = db_fetch_result($result, 0, "login");
+
+                       return true;
+               }
+
+               return false;
+
+       }
+
+       function http_authenticate_user($link) {
+
+               if (!$_SERVER['PHP_AUTH_USER']) {
+
+                       header('WWW-Authenticate: Basic realm="Tiny Tiny RSS"');
+                       header('HTTP/1.0 401 Unauthorized');
+                       print "<h1>401 Unathorized</h1>";
+                       exit;
+                       
+               } else {
+
+                       $login = db_escape_string($_SERVER['PHP_AUTH_USER']);
+                       $password = db_escape_string($_SERVER['PHP_AUTH_PW']);
+
+                       return authenticate_user($link, $login, $password);
+               }               
+       }
+
 ?>