package org.js.model.adaptation.rules.add; import org.js.model.adaptation.IRewriteRule; import org.js.model.adaptation.ui.UserInputAddRole; import org.js.model.rbac.AccessControlModel; import org.js.model.rbac.Group; import org.js.model.rbac.Role; import org.js.model.workflow.util.AccessControlModelUtil; public class AddRoleGroupMember extends AbstractAccessControlAddRewriteRule { public AddRoleGroupMember(UserInputAddRole input, AccessControlModel accessControlModel) { super(input, accessControlModel); } @Override public int execute() { return addMember(); } private int addMember() { int returnCode = IRewriteRule.OK; Role owner = input.getGroupOwner(); Role newRole = input.getNewRole(); if (newRole != null) { if (owner != null) { Group roleGroup = AccessControlModelUtil.getRoleGroupForOwner(owner, accessControlModel); roleGroup.getMembers().add(newRole); } } else { returnCode = IRewriteRule.Error; } return returnCode; } }