Yevgeny Zaspitsky has uploaded a new change for review. Change subject: engine: add TerminateSession command ......................................................................
engine: add TerminateSession command Add TerminateSession command. Change-Id: Iebdc71abbd51d2eb01b2b3d9c877626d57d68d23 Bug-Url: https://bugzilla.redhat.com/1025796 Signed-off-by: Yevgeny Zaspitsky <yzasp...@redhat.com> --- A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/TerminateSessionCommand.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/TerminateSessionParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java 3 files changed, 75 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/82/38382/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/TerminateSessionCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/TerminateSessionCommand.java new file mode 100644 index 0000000..cfb0691 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/TerminateSessionCommand.java @@ -0,0 +1,53 @@ +package org.ovirt.engine.core.bll.aaa; + +import java.util.Collections; +import java.util.List; + +import javax.inject.Inject; +import javax.inject.Named; + +import org.ovirt.engine.core.bll.Backend; +import org.ovirt.engine.core.bll.CommandBase; +import org.ovirt.engine.core.bll.utils.PermissionSubject; +import org.ovirt.engine.core.common.action.LogoutUserParameters; +import org.ovirt.engine.core.common.action.TerminateSessionParameters; +import org.ovirt.engine.core.common.businessentities.aaa.DbUser; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.utils.linq.Predicate; + +public class TerminateSessionCommand extends CommandBase<TerminateSessionParameters> { + + @Named + @Inject + private Predicate<Guid> isSystemSuperUserPredicate; + + private final String sessionId; + private final DbUser user; + + public TerminateSessionCommand(TerminateSessionParameters parameters) { + super(parameters); + sessionId = SessionDataContainer.getInstance().getSessionIdBySeqId(parameters.getSessionDbId()); + user = SessionDataContainer.getInstance().getUser(sessionId, false); + } + + protected boolean canDoAction() { + return sessionId != null && user != null; + } + + @Override + protected void executeCommand() { + LogoutUserParameters params = new LogoutUserParameters(user.getId()); + params.setSessionId(sessionId); + setReturnValue(Backend.getInstance().logoff(params)); + } + + @Override + protected boolean isUserAuthorizedToRunAction() { + return isSystemSuperUserPredicate.eval(getCurrentUser().getId()); + } + + @Override + public List<PermissionSubject> getPermissionCheckSubjects() { + return Collections.emptyList(); + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/TerminateSessionParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/TerminateSessionParameters.java new file mode 100644 index 0000000..9acfdd0 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/TerminateSessionParameters.java @@ -0,0 +1,20 @@ +package org.ovirt.engine.core.common.action; + +import java.io.Serializable; + +public class TerminateSessionParameters extends VdcActionParametersBase implements Serializable { + private static final long serialVersionUID = -8545136602971701926L; + + private long sessionDbId; + + public TerminateSessionParameters(long sessionDbId) { + this.sessionDbId = sessionDbId; + } + + public long getSessionDbId() { + return sessionDbId; + } + + public TerminateSessionParameters() { + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java index 360af70..8dee5e8 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/VdcActionType.java @@ -171,8 +171,9 @@ // UserAndGroupsCommands LoginUser(406, ActionGroup.LOGIN, false, QuotaDependency.NONE), LogoutUser(408, false, QuotaDependency.NONE), - LogoutBySession(410, false, QuotaDependency.NONE), RemoveUser(409, ActionGroup.MANIPULATE_USERS, false, QuotaDependency.NONE), + LogoutBySession(410, false, QuotaDependency.NONE), + TerminateSession(411, false, QuotaDependency.NONE), RemoveGroup(415, ActionGroup.MANIPULATE_USERS, false, QuotaDependency.NONE), LoginAdminUser(418, ActionGroup.LOGIN, false, QuotaDependency.NONE), AddUser(419, ActionGroup.MANIPULATE_USERS, false, QuotaDependency.NONE), -- To view, visit https://gerrit.ovirt.org/38382 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iebdc71abbd51d2eb01b2b3d9c877626d57d68d23 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yevgeny Zaspitsky <yzasp...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches