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

Offical Documentation

Official Docs: