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