Browse Source

Fix SessionComponent::id() not returning the id.

When reading the id() with SessionComponent, the session should
auto start, otherwise you could get null back. This makes the return
more consistent.

Fixes #2749
mark_story 14 years ago
parent
commit
f09e5a36d2
1 changed files with 9 additions and 5 deletions
  1. 9 5
      lib/Cake/Controller/Component/SessionComponent.php

+ 9 - 5
lib/Cake/Controller/Component/SessionComponent.php

@@ -162,15 +162,19 @@ class SessionComponent extends Component {
 	}
 
 /**
- * Returns Session id
+ * Get/Set the session id.
  *
- * If $id is passed in a beforeFilter, the Session will be started
- * with the specified id
+ * When fetching the session id, the session will be started
+ * if it has not already been started.  When setting the session id,
+ * the session will not be started.
  *
- * @param string $id
- * @return string
+ * @param string $id Id to use (optional)
+ * @return string The current session id.
  */
 	public function id($id = null) {
+		if (empty($id)) {
+			CakeSession::start();
+		}
 		return CakeSession::id($id);
 	}