summaryrefslogtreecommitdiff
path: root/system
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2009-06-21 15:09:32 -0700
committerBharat Mediratta <bharat@menalto.com>2009-06-21 15:09:32 -0700
commit06f066164f60fe0babbc7a480e6319a0702e0c46 (patch)
treec21ca80bac20afd76c24108f177c9807c4bd359c /system
parent1fa05d2f39604febda698743d78ff0c36cd25f5f (diff)
Add Session::abort_save() to Kohana.
Filed upstream as: http://dev.kohanaphp.com/issues/1801
Diffstat (limited to 'system')
-rw-r--r--system/libraries/Session.php13
-rw-r--r--system/libraries/drivers/Session/Database.php4
2 files changed, 17 insertions, 0 deletions
diff --git a/system/libraries/Session.php b/system/libraries/Session.php
index e03f5dff..61a0d403 100644
--- a/system/libraries/Session.php
+++ b/system/libraries/Session.php
@@ -27,6 +27,9 @@ class Session_Core {
// Input library
protected $input;
+ // Automatically save the session by default
+ public static $should_save = true;
+
/**
* Singleton instance of Session.
*/
@@ -455,4 +458,14 @@ class Session_Core {
}
}
+ /**
+ * Do not save this session.
+ *
+ * @return void
+ */
+ public function abort_save() {
+ Session::$should_save = false;
+
+ }
+
} // End Session Class
diff --git a/system/libraries/drivers/Session/Database.php b/system/libraries/drivers/Session/Database.php
index b4144ffb..b8993a9e 100644
--- a/system/libraries/drivers/Session/Database.php
+++ b/system/libraries/drivers/Session/Database.php
@@ -98,6 +98,10 @@ class Session_Database_Driver implements Session_Driver {
public function write($id, $data)
{
+ if (!Session::$should_save) {
+ return true;
+ }
+
$data = array
(
'session_id' => $id,