summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2007-03-01 13:09:05 +0100
committerAndrew Dolgov <[email protected]>2007-03-01 13:09:05 +0100
commitd620cfe70afc35bae4f8c2d92798448812701554 (patch)
tree37e11268a3d5589d30f32cf332c8922d5be9f69c
parent64f6db9051ea25293077e0ebcb61f90ec7eb72e9 (diff)
login system fixes
-rw-r--r--functions.js2
-rw-r--r--functions.php25
-rw-r--r--sessions.php6
3 files changed, 29 insertions, 4 deletions
diff --git a/functions.js b/functions.js
index f4c8ee1c1..35b1e1319 100644
--- a/functions.js
+++ b/functions.js
@@ -56,7 +56,7 @@ function logout_callback() {
var container = document.getElementById('notify');
if (xmlhttp.readyState == 4) {
try {
- window.location.reload(true);
+ window.location.href = "tt-rss.php";
} catch (e) {
exception_error("logout_callback", e);
}
diff --git a/functions.php b/functions.php
index 170696352..59086506a 100644
--- a/functions.php
+++ b/functions.php
@@ -1167,6 +1167,15 @@
}
}
}
+
+ if ($_SESSION["cookie_lifetime"] && $_SESSION["uid"]) {
+
+# print time() . " vs " . $_SESSION["cookie_lifetime"];
+
+ if (time() > $_SESSION["cookie_lifetime"]) {
+ return false;
+ }
+ }
return true;
}
@@ -1193,9 +1202,24 @@
if ($login_action == "do_login") {
$login = $_POST["login"];
$password = $_POST["password"];
+ $remember_me = $_POST["remember_me"];
if (authenticate_user($link, $login, $password)) {
$_POST["password"] = "";
+
+ if ($remember_me) {
+ $_SESSION["cookie_lifetime"] = time() +
+ SESSION_COOKIE_LIFETIME_REMEMBER;
+ } else {
+ $_SESSION["cookie_lifetime"] = time() + SESSION_COOKIE_LIFETIME;
+ }
+
+ setcookie("ttrss_cltime", $_SESSION["cookie_lifetime"],
+ $_SESSION["cookie_lifetime"]);
+
+ header("Location: " . $_SERVER["REQUEST_URI"]);
+ exit;
+
return;
}
}
@@ -1204,6 +1228,7 @@
render_login_form($link);
exit;
}
+
} else {
return authenticate_user($link, "admin", null);
}
diff --git a/sessions.php b/sessions.php
index aab945d4d..c2854e04a 100644
--- a/sessions.php
+++ b/sessions.php
@@ -91,11 +91,11 @@
db_query($session_connection, $query);
}
-// session_set_cookie_params(SESSION_COOKIE_LIFETIME);
-
if (DATABASE_BACKED_SESSIONS) {
session_set_save_handler("open", "close", "read", "write", "destroy", "gc");
}
-
+
+ session_set_cookie_params(SESSION_COOKIE_LIFETIME_REMEMBER);
+
session_start();
?>