From 2f9400fc8741796eda28f2456a9401278109d545 Mon Sep 17 00:00:00 2001
From: Clark Wang <clark.wangs@gmail.com>
Date: Sun, 28 Dec 2014 16:02:37 +0800
Subject: [PATCH] fix User.settings.ttl can't be overridden in sub model

Signed-off-by: Clark Wang <clark.wangs@gmail.com>
---
 common/models/user.js |  2 +-
 test/user.test.js     | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/common/models/user.js b/common/models/user.js
index e9fee16e..42661905 100644
--- a/common/models/user.js
+++ b/common/models/user.js
@@ -464,7 +464,7 @@ module.exports = function(User) {
 
     // max ttl
     this.settings.maxTTL = this.settings.maxTTL || DEFAULT_MAX_TTL;
-    this.settings.ttl = DEFAULT_TTL;
+    this.settings.ttl = this.settings.ttl || DEFAULT_TTL;
 
     UserModel.setter.password = function(plain) {
       var salt = bcrypt.genSaltSync(this.constructor.settings.saltWorkFactor || SALT_WORK_FACTOR);
diff --git a/test/user.test.js b/test/user.test.js
index 8b8ee4f3..60ef9182 100644
--- a/test/user.test.js
+++ b/test/user.test.js
@@ -808,4 +808,14 @@ describe('User', function() {
       expect(User.accessToken.modelName, 'modelName').to.eql('AccessToken');
     });
   });
+
+  describe('ttl', function() {
+    var User2;
+    beforeEach(function() {
+      User2 = loopback.User.extend('User2', {}, { ttl: 10 });
+    });
+    it('should override ttl setting in based User model', function() {
+      expect(User2.settings.ttl).to.equal(10);
+    });
+  });
 });