Name

sn_smd.SMSecurityProfileMembershipAction

Description

No description available

Script

var SMSecurityProfileMembershipAction = Class.create();
SMSecurityProfileMembershipAction.prototype = Object.extendsObject(SMBaseAction, {
  
  doAction: function(params) {
  	try {
  		if (!(params.object_id && params.context && params.operation)) {
  			throw SMErrorHelper.createScriptAPIError(
  					gs.getMessage("Illegal parameter"),
  					"SMSecurityProfileMembershipAction.doAction: Undefined object id, object context, and/or operation on security profiles membership handling",
  					null
  				);
  		}
  		
  		var manager = new SMSecurityManager(params.context, params.object_id);
  		return this._doOperation(manager, params.operation, params);
  	} catch(error) {
  		throw SMErrorHelper.createScriptAPIError(
  			gs.getMessage("Unable to manage membership"),
  			"SMSecurityProfileMembershipAction.doAction: Membership management failed",
  			error
  		);
  	}				
  },
  
  _doOperation: function(manager, operation, params) {
  	if(!params.profile_name || !params.members) {
  		throw SMErrorHelper.createScriptAPIError(
  			gs.getMessage("Illegal parameter"),
  			"SMSecurityProfileMembershipAction._doOperation: profile name and member name is missing",
  			null
  		);
  	}
  	var members = new global.JSON().decode(params.members);
  	switch(operation) {
  		case 'add':	
  			for(var i = 0; i < members.length; i++) {
  				manager.addProfileMembership(params.profile_name, members[i].id, members[i].type);
  			}
  			SMEmailHelper.sendMembershipNotification(gs.getUserID(), params.recipients, params.object_name, params.context, params.profile_name, params.message, params.link);
  			return 'success';
  		case 'remove':				 
  			manager.removeProfileMembership(params.profile_name, members[0].id, members[0].type);
  			return 'success';
  		default:
  			throw SMErrorHelper.createScriptAPIError(
  					gs.getMessage("Unsupported operation on security profiles membership management"),
  					"SMSecurityProfileMembershipAction._doOperation: Unsupported  operation on security profiles membership management",
  					null
  				);
  	}
  },	

  type: 'SMSecurityProfileMembershipAction'
});

Sys ID

3dad75f7c3331200e2ddb59af3d3ae7e

Offical Documentation

Official Docs: