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

Reply via email to