diff options
author | Andreas Gohr <andi@splitbrain.org> | 2011-10-15 18:41:09 +0200 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2011-10-15 18:41:55 +0200 |
commit | 85fef7e2945dc208c20d655d280aac102658747a (patch) | |
tree | 5c90d0b14afbbea26c6dd5ca18adcfa17d6fd4ed | |
parent | c7e90e3f2f3b7cddce01cc73132e2a168b3b696a (diff) | |
download | rpg-85fef7e2945dc208c20d655d280aac102658747a.tar.gz rpg-85fef7e2945dc208c20d655d280aac102658747a.tar.bz2 |
allow page unlocking based on session IDs FS#2262
-rw-r--r-- | inc/common.php | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/inc/common.php b/inc/common.php index 8b92ebcbc..39af439f8 100644 --- a/inc/common.php +++ b/inc/common.php @@ -714,8 +714,8 @@ function checklock($id){ } //my own lock - $ip = io_readFile($lock); - if( ($ip == clientIP()) || ($ip == $_SERVER['REMOTE_USER']) ){ + list($ip,$session) = explode("\n",io_readFile($lock)); + if($ip == $_SERVER['REMOTE_USER'] || $ip == clientIP() || $session == session_id()){ return false; } @@ -738,7 +738,7 @@ function lock($id){ if($_SERVER['REMOTE_USER']){ io_saveFile($lock,$_SERVER['REMOTE_USER']); }else{ - io_saveFile($lock,clientIP()); + io_saveFile($lock,clientIP()."\n".session_id()); } } @@ -751,8 +751,8 @@ function lock($id){ function unlock($id){ $lock = wikiLockFN($id); if(@file_exists($lock)){ - $ip = io_readFile($lock); - if( ($ip == clientIP()) || ($ip == $_SERVER['REMOTE_USER']) ){ + list($ip,$session) = explode("\n",io_readFile($lock)); + if($ip == $_SERVER['REMOTE_USER'] || $ip == clientIP() || $session == session_id()){ @unlink($lock); return true; } |