summaryrefslogtreecommitdiff
path: root/inc/common.php
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2011-10-15 18:41:09 +0200
committerAndreas Gohr <andi@splitbrain.org>2011-10-15 18:41:55 +0200
commit85fef7e2945dc208c20d655d280aac102658747a (patch)
tree5c90d0b14afbbea26c6dd5ca18adcfa17d6fd4ed /inc/common.php
parentc7e90e3f2f3b7cddce01cc73132e2a168b3b696a (diff)
downloadrpg-85fef7e2945dc208c20d655d280aac102658747a.tar.gz
rpg-85fef7e2945dc208c20d655d280aac102658747a.tar.bz2
allow page unlocking based on session IDs FS#2262
Diffstat (limited to 'inc/common.php')
-rw-r--r--inc/common.php10
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;
}