Name

sn_customerservice.CSMContentAccessCase

Description

Implements extension point global.CSMContentAccessEP Extension point for CSM Entities CRUD operations.

Script

var CSMContentAccessCase = Class.create();
CSMContentAccessCase.prototype = Object.extendsObject(global.CSMContentAccess, {
  /** Overriding... **/
  
  _enforceResponsibilities: function() {
  	if(gs.nil(this.current) || !this._isChildOf(this.RESOURCE_NAME, this.current.getTableName() || ""))
  		return false;

  	return true;
  },
  
  _canRead_QBR: function() {
  	var qbrUtil = new global.CSQueryBRUtil();
  	return qbrUtil.canESMUserReadCase(current,qbrUtil.TABLE_CS_CASE);
  },
  
  _getWritePermissionMap: function() {
  	return this._getPermissionMapForAccess(global.CSMRelationshipConstants.ACCESS.WRITE);
  },

  _getCreatePermissionMap: function() {
  	return this._getPermissionMapForAccess(global.CSMRelationshipConstants.ACCESS.CREATE);
  },
  
  
  /** Internal methods **/
  
  _isB2BSoldProductCase: function() {
  	return !gs.nil(this.current) && !gs.nil(this.current.account) && !gs.nil(this.current.sold_product);
  },
  
  /** Internal methods **/
  
  _isB2CSoldProductCase: function() {
  	return !gs.nil(this.current) && !gs.nil(this.current.consumer) && !gs.nil(this.current.sold_product);
  },
  
  _getPermissionMapForAccess: function(accessType) {
  	var permissionMap = {};
  	var relConst = global.CSMRelationshipConstants;
  	permissionMap[relConst.RELATIONSHIP_CASE_RELATED_PARTY] = accessType;
  	
  	if(this._isB2BSoldProductCase() &&  this.__isRestrictedAccessAccount(this.current.account+ ''))
  			permissionMap[relConst.RELATIONSHIP_CONTACT_SOLDPRODUCT] = accessType;
  	
  	if(this._isB2CSoldProductCase())
  			permissionMap[relConst.RELATIONSHIP_CONSUMER_SOLDPRODUCT] = accessType;
  	
  	permissionMap[global.CSMBaseConstants.SOLD_PRODUCT_RELATED_PARTY] = accessType;
  	permissionMap[relConst.RELATIONSHIP_INSTALL_BASE_RELATED_PARTY] = accessType;
  
  	return permissionMap;
  },
  
  RESOURCE_NAME : global.CSMBaseConstants.CASE_TABLE,
  RESOURCE_TYPE : "TABLE",

  type: 'CSMContentAccessCase'
});

Sys ID

0a9dd427ebb63010bbd186de42522870

Offical Documentation

Official Docs: