package edu.harvard.iq.dataverse.engine.command.impl; import edu.harvard.iq.dataverse.RoleAssignment; import edu.harvard.iq.dataverse.authorization.DataverseRole; import edu.harvard.iq.dataverse.authorization.Permission; import edu.harvard.iq.dataverse.engine.command.AbstractVoidCommand; 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; /** * Deletes a role. * @author michael */ @RequiredPermissions( Permission.ManageDataversePermissions ) public class DeleteRoleCommand extends AbstractVoidCommand { private final DataverseRole doomed; public DeleteRoleCommand(DataverseRequest aRequest, DataverseRole doomed ) { super(aRequest, doomed.getOwner()); this.doomed = doomed; } @Override protected void executeImpl(CommandContext ctxt) throws CommandException { for ( RoleAssignment ra : ctxt.roles().roleAssignments(doomed.getId()) ) { ctxt.roles().revoke(ra); } ctxt.roles().delete(doomed.getId()); } }