Name
sn_install_base.CSMContentAccessSoldProduct
Description
CSMContentAccessEP extension point implementation for the table Sold Product
Script
var CSMContentAccessSoldProduct = Class.create();
CSMContentAccessSoldProduct.prototype = Object.extendsObject(global.CSMContentAccess,{
/** Overriding... **/
_enforceResponsibilities: function() {
if(gs.nil(this.current) || !this._isChildOf(this.RESOURCE_NAME, this.current.getTableName() || ""))
return false;
return this._isB2C() || (this._isB2B() && this.__isRestrictedAccessAccount(this.current.account+ ''));
},
_canRead_QBR: function() {
var qbrUtil = new global.CSQueryBRUtil();
if (this._isB2C())
return qbrUtil.canConsumerReadRecord(this.current);
else if (this._isB2B())
return qbrUtil.canUserReadRecord(this.current);
return false;
},
_getWritePermissionMap: function() {
return this._getPermissionMapForAccess(global.CSMRelationshipConstants.ACCESS.WRITE);
},
_getCreatePermissionMap: function() {
return this._getPermissionMapForAccess(global.CSMRelationshipConstants.ACCESS.CREATE);
},
/** Internal functions **/
_isB2B: function() {
return !gs.nil(this.current) && !gs.nil(this.current.account);
},
_isB2C: function() {
return !gs.nil(this.current) && !gs.nil(this.current.consumer);
},
_getPermissionMapForAccess: function(accessType) {
var permissionMap = {};
var relConst = global.CSMRelationshipConstants;
if(this._isB2C()) {
permissionMap[relConst.RELATIONSHIP_CONSUMER_SOLDPRODUCT] = accessType;
} else if(this._isB2B()) {
permissionMap[relConst.RELATIONSHIP_CONTACT_SOLDPRODUCT] = accessType;
}
return permissionMap;
},
RESOURCE_NAME : global.CSMBaseConstants.SOLD_PRODUCT,
RESOURCE_TYPE : "TABLE",
type: 'CSMContentAccessSoldProduct'
});
Sys ID
88df247677f27010d3ef07dc7d5a998e