diff --git a/CHANGELOG b/CHANGELOG index 0ab42c536..3f8f6a6c7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -5,7 +5,9 @@ - fix ordering by sequence in folder listing - list mandatory approvers/reviewers without access on document - login failures will actually increment the failure counter of the user -- fix runtime error when doing operations on root folder (Bug #128) +- fix error when doing operations on root folder and notification is + turned on (Bug #128) +- renew session timeout on each click unless cookie lifetime is set to 0 -------------------------------------------------------------------------------- Changes in version 4.3.4 diff --git a/inc/inc.Authentication.php b/inc/inc.Authentication.php index 716e2fab0..3206d9414 100644 --- a/inc/inc.Authentication.php +++ b/inc/inc.Authentication.php @@ -93,4 +93,10 @@ if (!$user->isAdmin()) { } } } + +/* Update cookie lifetime */ +if($settings->_cookieLifetime) { + $lifetime = time() + intval($settings->_cookieLifetime); + setcookie("mydms_session", $dms_session, $lifetime, $settings->_httpRoot, null, null, true); +} ?> diff --git a/op/op.Ajax.php b/op/op.Ajax.php index 321094dd2..5597a4b45 100644 --- a/op/op.Ajax.php +++ b/op/op.Ajax.php @@ -48,12 +48,11 @@ if (isset($_COOKIE["mydms_session"])) { $user = $dms->getUser($resArr["su"]); } } + include $settings->_rootDir . "languages/" . $resArr["language"] . "/lang.inc"; } else { $user = null; } -include $settings->_rootDir . "languages/" . $resArr["language"] . "/lang.inc"; - $command = $_REQUEST["command"]; switch($command) { case 'checkpwstrength': @@ -75,6 +74,12 @@ switch($command) { } break; + case 'sessioninfo': /* {{{ */ + if($user) { + echo json_encode($resArr); + } + break; /* }}} */ + case 'searchdocument': /* {{{ */ if($user) { $query = $_GET['query']; @@ -108,58 +113,62 @@ switch($command) { break; /* }}} */ case 'subtree': /* {{{ */ - if(empty($_GET['node'])) - $nodeid = $settings->_rootFolderID; - else - $nodeid = (int) $_GET['node']; - if(empty($_GET['showdocs'])) - $showdocs = false; - else - $showdocs = true; + if($user) { + if(empty($_GET['node'])) + $nodeid = $settings->_rootFolderID; + else + $nodeid = (int) $_GET['node']; + if(empty($_GET['showdocs'])) + $showdocs = false; + else + $showdocs = true; - $folder = $dms->getFolder($nodeid); - if (!is_object($folder)) return ''; - - $subfolders = $folder->getSubFolders(); - $subfolders = SeedDMS_Core_DMS::filterAccess($subfolders, $user, M_READ); - $tree = array(); - foreach($subfolders as $subfolder) { - $level = array('label'=>$subfolder->getName(), 'id'=>$subfolder->getID(), 'load_on_demand'=>$subfolder->hasSubFolders() ? true : false, 'is_folder'=>true); - if(!$subfolder->hasSubFolders()) - $level['children'] = array(); - $tree[] = $level; - } - if($showdocs) { - $documents = $folder->getDocuments(); - $documents = SeedDMS_Core_DMS::filterAccess($documents, $user, M_READ); - foreach($documents as $document) { - $level = array('label'=>$document->getName(), 'id'=>$document->getID(), 'load_on_demand'=>false, 'is_folder'=>false); + $folder = $dms->getFolder($nodeid); + if (!is_object($folder)) return ''; + + $subfolders = $folder->getSubFolders(); + $subfolders = SeedDMS_Core_DMS::filterAccess($subfolders, $user, M_READ); + $tree = array(); + foreach($subfolders as $subfolder) { + $level = array('label'=>$subfolder->getName(), 'id'=>$subfolder->getID(), 'load_on_demand'=>$subfolder->hasSubFolders() ? true : false, 'is_folder'=>true); + if(!$subfolder->hasSubFolders()) + $level['children'] = array(); $tree[] = $level; } - } + if($showdocs) { + $documents = $folder->getDocuments(); + $documents = SeedDMS_Core_DMS::filterAccess($documents, $user, M_READ); + foreach($documents as $document) { + $level = array('label'=>$document->getName(), 'id'=>$document->getID(), 'load_on_demand'=>false, 'is_folder'=>false); + $tree[] = $level; + } + } - echo json_encode($tree); -// echo json_encode(array(array('label'=>'test1', 'id'=>1, 'load_on_demand'=> true), array('label'=>'test2', 'id'=>2, 'load_on_demand'=> true))); + echo json_encode($tree); + // echo json_encode(array(array('label'=>'test1', 'id'=>1, 'load_on_demand'=> true), array('label'=>'test2', 'id'=>2, 'load_on_demand'=> true))); + } break; /* }}} */ case 'addtoclipboard': /* {{{ */ - if (isset($_GET["id"]) && is_numeric($_GET["id"]) && isset($_GET['type'])) { - switch($_GET['type']) { - case "folder": - $session->addToClipboard($dms->getFolder($_GET['id'])); - break; - case "document": - $session->addToClipboard($dms->getDocument($_GET['id'])); - break; + if($user) { + if (isset($_GET["id"]) && is_numeric($_GET["id"]) && isset($_GET['type'])) { + switch($_GET['type']) { + case "folder": + $session->addToClipboard($dms->getFolder($_GET['id'])); + break; + case "document": + $session->addToClipboard($dms->getDocument($_GET['id'])); + break; + } + } + $view = UI::factory($theme, '', array('dms'=>$dms, 'user'=>$user)); + if($view) { + $view->setParam('refferer', ''); + $content = $view->menuClipboard($session->getClipboard()); + header('Content-Type: application/json'); + echo json_encode($content); + } else { } - } - $view = UI::factory($theme, '', array('dms'=>$dms, 'user'=>$user)); - if($view) { - $view->setParam('refferer', ''); - $content = $view->menuClipboard($session->getClipboard()); - header('Content-Type: application/json'); - echo json_encode($content); - } else { } break; /* }}} */