Blame view
node_modules/loopback/common/models/role-mapping.js
2.49 KB
f7563de62
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
// Copyright IBM Corp. 2014,2016. All Rights Reserved. // Node module: loopback // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT var loopback = require('../../lib/loopback'); /** * The `RoleMapping` model extends from the built in `loopback.Model` type. * * @property {String} id Generated ID. * @property {String} name Name of the role. * @property {String} Description Text description. * * @class RoleMapping * @inherits {PersistedModel} */ module.exports = function(RoleMapping) { // Principal types RoleMapping.USER = 'USER'; RoleMapping.APP = RoleMapping.APPLICATION = 'APP'; RoleMapping.ROLE = 'ROLE'; RoleMapping.resolveRelatedModels = function() { if (!this.userModel) { var reg = this.registry; this.roleModel = reg.getModelByType(loopback.Role); this.userModel = reg.getModelByType(loopback.User); this.applicationModel = reg.getModelByType(loopback.Application); } }; /** * Get the application principal * @callback {Function} callback * @param {Error} err * @param {Application} application */ RoleMapping.prototype.application = function(callback) { this.constructor.resolveRelatedModels(); if (this.principalType === RoleMapping.APPLICATION) { var applicationModel = this.constructor.applicationModel; applicationModel.findById(this.principalId, callback); } else { process.nextTick(function() { if (callback) callback(null, null); }); } }; /** * Get the user principal * @callback {Function} callback * @param {Error} err * @param {User} user */ RoleMapping.prototype.user = function(callback) { this.constructor.resolveRelatedModels(); if (this.principalType === RoleMapping.USER) { var userModel = this.constructor.userModel; userModel.findById(this.principalId, callback); } else { process.nextTick(function() { if (callback) callback(null, null); }); } }; /** * Get the child role principal * @callback {Function} callback * @param {Error} err * @param {User} childUser */ RoleMapping.prototype.childRole = function(callback) { this.constructor.resolveRelatedModels(); if (this.principalType === RoleMapping.ROLE) { var roleModel = this.constructor.roleModel; roleModel.findById(this.principalId, callback); } else { process.nextTick(function() { if (callback) callback(null, null); }); } }; }; |