2014-09-30 58 views

回答

0

您需要声明一个新模型。然后,之后,手动添加base属性以使其从内置User模型继承。

/common/models/custom-user.json

{ 
    "name": "customUser", 
    "base": "User", 
    "options": { 
    "idInjection": false, 
    "postgresql": { 
     "schema": "public", 
     "table": "user" 
    } 
    }, 
    "dataSource": "mypostgresDS", 
    "properties": { 
    "id": { 
     "type": "number", 
     "postgresql": { 
     "columnName": "id", 
     "dataType": "integer" 
     } 
    } 
    ... 
    ... 
    } 
} 

然后你就可以在

/common/models/custom-user.js

module.exports = function (customUser) { 

    // avoid looking for properties that your new model doesn't have 
    var excludedProperties = [ 
     'realm', 
     'emailVerified', 
     'verificationToken', 
     'credentials', 
     'challenges', 
     'lastUpdated', 
     'created' 
    ]; 

    // Remove the properties from base User model that doesn't have mapped columns 
    excludedProperties.forEach(function (p) { 
     delete customUser.definition.rawProperties[p]; 
     delete customUser.definition.properties[p]; 
     delete customUser.prototype[p]; 
    }); 

    customUser.prototype.createAccessToken = function (ttl, cb) { 
     var user = this; 
     if (ttl === undefined) ttl = 259200; 
     var timenow = new Date().toISOString(); 
     console.log('ttl will be ', ttl, ' current time is ' + timenow); 
     user.accessTokens.create({ 
      ttl: ttl 
     }, cb); 
    }; 


    customUser.prototype.checkPassword = function (password, stored_hash) { 
     var user = this; 
     console.log('I will overwrite this check to always return true'); 
     return true; 
    }; 
}); 
覆盖内置路线
+0

我会试一试,让你知道结果 – 2014-10-14 04:16:18

相关问题