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