summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/auth.php1
-rw-r--r--lib/plugins/usermanager/admin.php10
2 files changed, 11 insertions, 0 deletions
diff --git a/inc/auth.php b/inc/auth.php
index d511930dc..48888da1e 100644
--- a/inc/auth.php
+++ b/inc/auth.php
@@ -157,6 +157,7 @@ function auth_login($user,$pass,$sticky=false,$silent=false){
if($user && $pass){
// we got a cookie - see if we can trust it
if(isset($session) &&
+ ($session['time'] >= @filemtime($conf['cachedir'].'/sessionpurge')) &&
($session['time'] >= time()-$conf['auth_security_timeout']) &&
($session['user'] == $user) &&
($session['pass'] == $pass) && //still crypted
diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php
index e20078d04..c5b720444 100644
--- a/lib/plugins/usermanager/admin.php
+++ b/lib/plugins/usermanager/admin.php
@@ -364,6 +364,8 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
* Delete user
*/
function _deleteUser(){
+ global $conf;
+
if (!checkSecurityToken()) return false;
if (!$this->_auth->canDo('delUser')) return false;
@@ -381,6 +383,9 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
msg("$part1, $part2",-1);
}
+ // invalidate all sessions
+ io_saveFile($conf['cachedir'].'/sessionpurge',time());
+
return true;
}
@@ -410,6 +415,8 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
* Modify user (modified user data has been recieved)
*/
function _modifyUser(){
+ global $conf;
+
if (!checkSecurityToken()) return false;
if (!$this->_auth->canDo('UserMod')) return false;
@@ -455,6 +462,9 @@ class admin_plugin_usermanager extends DokuWiki_Admin_Plugin {
$this->_notifyUser($notify,$newpass);
}
+ // invalidate all sessions
+ io_saveFile($conf['cachedir'].'/sessionpurge',time());
+
} else {
msg($this->lang['update_fail'],-1);
}