summaryrefslogtreecommitdiff
path: root/functions.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2005-11-20 12:19:20 +0100
committerAndrew Dolgov <[email protected]>2005-11-20 12:19:20 +0100
commitb8aa49bc97bf0de775caf4689e3db3a226a7378a (patch)
tree78c61a22e0ca9b2f18d127f83953e139c7fb6dc8 /functions.php
parentbffdddd0b0c9d45c6d7b4c03015db554a691ed2c (diff)
more http auth related fixes, unified login sequence function
Diffstat (limited to 'functions.php')
-rw-r--r--functions.php34
1 files changed, 33 insertions, 1 deletions
diff --git a/functions.php b/functions.php
index e6b5b8e6e..32540bf56 100644
--- a/functions.php
+++ b/functions.php
@@ -608,9 +608,12 @@
if (!$_SERVER['PHP_AUTH_USER'] || $force_logout) {
+ if ($force_logout) logout_user();
+
header('WWW-Authenticate: Basic realm="Tiny Tiny RSS"');
header('HTTP/1.0 401 Unauthorized');
print "<h1>401 Unathorized</h1>";
+
exit;
} else {
@@ -619,7 +622,7 @@
$password = db_escape_string($_SERVER['PHP_AUTH_PW']);
return authenticate_user($link, $login, $password);
- }
+ }
}
function make_password($length = 8) {
@@ -659,4 +662,33 @@
}
+ function logout_user() {
+ $_SESSION["uid"] = null;
+ $_SESSION["name"] = null;
+ $_SESSION["access_level"] = null;
+ session_destroy();
+ }
+
+ function login_sequence($link) {
+ if (!SINGLE_USER_MODE) {
+
+ if (!USE_HTTP_AUTH) {
+ if (!$_SESSION["uid"]) {
+ header("Location: login.php?rt=tt-rss.php");
+ exit;
+ }
+ } else {
+ $force_logout = $_POST["ForceLogout"];
+
+ if (!http_authenticate_user($link, $force_logout == "yes")) {
+ if (!http_authenticate_user($link, true)) {
+ exit;
+ }
+ }
+ }
+ } else {
+ $_SESSION["uid"] = 1;
+ $_SESSION["name"] = "admin";
+ }
+ }
?>