Alexander Nicolaysen Sørnes : objectManager: Avoid losing data when session times out while filling out a form
Alexander Nicolaysen Sørnes
asornes at winehq.org
Sun Aug 9 07:40:33 CDT 2009
Module: appdb
Branch: master
Commit: e40aec5d8404f00601c42ff65a0d5b132b193c91
URL: http://source.winehq.org/git/appdb.git/?a=commit;h=e40aec5d8404f00601c42ff65a0d5b132b193c91
Author: Alexander Nicolaysen Sørnes <alexander at linux-xqqm.(none)>
Date: Sat Aug 8 23:09:32 2009 +0200
objectManager: Avoid losing data when session times out while filling out a form
---
include/objectManager.php | 18 ++++++++++++++++--
objectManager.php | 2 +-
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/include/objectManager.php b/include/objectManager.php
index 593c0d2..182b373 100644
--- a/include/objectManager.php
+++ b/include/objectManager.php
@@ -406,8 +406,10 @@ class ObjectManager
}
/* Only show the edit screen if the user has sufficient rights */
- if(!$oObject->canEdit())
+ if(!$oObject->canEdit() && !getInput('sSubmit', $aClean))
$this->error_exit('You do not have sufficient privileges to edit this entry');
+ else if(!$oObject->canEdit())
+ $this->show_form_help_session_timeout();
/* Display errors, if any, and fetch form data */
if($this->displayErrors($sErrors))
@@ -1214,12 +1216,24 @@ class ObjectManager
echo '<input type="submit" name="sSubmit" class="button" value="Preview">';
}
- public function handle_anonymous_submission()
+ public function show_form_help_session_timeout()
+ {
+ $this->error_exit("Your session has timed out. <a target=\"_blank\" href=\"".BASE."account.php?sCmd=login\">Log in</a> and then <a href=\"javascript:location.reload();\">refresh thise page</a>.");
+ }
+
+ public function handle_anonymous_submission($aClean)
{
$oObject = new $this->sClass();
if($oObject->allowAnonymousSubmissions() || $_SESSION['current']->isLoggedIn())
return;
+ // Allow the user to continue filling out a form
+ if(getInput('sSubmit', $aClean))
+ {
+ apidb_header($this->get_title(getInput($sAction, $aClean)));
+ $this->show_form_help_session_timeout();
+ }
+
login_form();
exit;
}
diff --git a/objectManager.php b/objectManager.php
index aa1db6d..65b867d 100644
--- a/objectManager.php
+++ b/objectManager.php
@@ -82,7 +82,7 @@ if($sAction)
switch($aClean['sAction'])
{
case 'add':
- $oObject->handle_anonymous_submission();
+ $oObject->handle_anonymous_submission($aClean);
break;
case 'changeParent':
More information about the wine-cvs
mailing list