package edu.harvard.iq.dataverse.engine.command.impl; import edu.harvard.iq.dataverse.authorization.Permission; import edu.harvard.iq.dataverse.authorization.groups.impl.explicit.ExplicitGroup; import edu.harvard.iq.dataverse.engine.command.AbstractCommand; import edu.harvard.iq.dataverse.engine.command.CommandContext; import edu.harvard.iq.dataverse.engine.command.DataverseRequest; import edu.harvard.iq.dataverse.engine.command.RequiredPermissions; import edu.harvard.iq.dataverse.engine.command.exception.CommandException; import java.util.Set; /** * * @author michael */ @RequiredPermissions( Permission.ManageDataversePermissions ) public class RemoveRoleAssigneesFromExplicitGroupCommand extends AbstractCommand<ExplicitGroup>{ private final Set<String> roleAssigneeIdentifiers; private final ExplicitGroup explicitGroup; public RemoveRoleAssigneesFromExplicitGroupCommand(DataverseRequest aRequest, ExplicitGroup anExplicitGroup, Set<String> someRoleAssigneeIdentifiers ) { super(aRequest, anExplicitGroup.getOwner()); roleAssigneeIdentifiers = someRoleAssigneeIdentifiers; explicitGroup = anExplicitGroup; } @Override public ExplicitGroup execute(CommandContext ctxt) throws CommandException { for ( String rai : roleAssigneeIdentifiers ) { explicitGroup.removeByRoleAssgineeIdentifier(rai); } return ctxt.explicitGroups().persist(explicitGroup); } }