]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
elgg.session.cookie() again handles missing options.expires
authorSteve Clay <steve@mrclay.org>
Fri, 14 Jun 2013 15:28:54 +0000 (11:28 -0400)
committerSteve Clay <steve@mrclay.org>
Fri, 14 Jun 2013 15:28:54 +0000 (11:28 -0400)
js/lib/session.js

index 0fc7f5c87a394901f80e3f3191cb957ae1c327b3..a8d52733c24c06091a98cd6f5d251731b92d6386 100644 (file)
@@ -14,9 +14,9 @@ elgg.provide('elgg.session');
  *     {string} options[domain]
  *     {boolean} options[secure]
  * 
- * @return {string} The value of the cookie, if only name is specified
+ * @return {string|undefined} The value of the cookie, if only name is specified. Undefined if no value set
  */
-elgg.session.cookie = function (name, value, options) {
+elgg.session.cookie = function(name, value, options) {
        var cookies = [], cookie = [], i = 0, date, valid = true;
        
        //elgg.session.cookie()
@@ -48,17 +48,18 @@ elgg.session.cookie = function (name, value, options) {
        
        cookies.push(name + '=' + value);
 
-    if (elgg.isNumber(options.expires)) {
-        date = new Date();
-        date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
-    } else if (options.expires.toUTCString) {
-        date = options.expires;
-    }
+    if (options.expires) {
+        if (elgg.isNumber(options.expires)) {
+            date = new Date();
+            date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
+        } else if (options.expires.toUTCString) {
+            date = options.expires;
+        }
 
-    if (date) {
-        cookies.push('expires=' + date.toUTCString());
+        if (date) {
+            cookies.push('expires=' + date.toUTCString());
+        }
     }
-
        
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined