]> git.argeo.org Git - lgpl/argeo-commons.git/blob - swt/org.argeo.cms.e4/src/org/argeo/cms/e4/handlers/CloseWorkbench.java
Prepare next development cycle
[lgpl/argeo-commons.git] / swt / org.argeo.cms.e4 / src / org / argeo / cms / e4 / handlers / CloseWorkbench.java
1 package org.argeo.cms.e4.handlers;
2
3 import javax.security.auth.Subject;
4
5 import org.argeo.cms.CurrentUser;
6 import org.argeo.cms.util.CurrentSubject;
7 import org.eclipse.e4.core.di.annotations.Execute;
8 import org.eclipse.e4.ui.workbench.IWorkbench;
9
10 public class CloseWorkbench {
11 @Execute
12 public void execute(IWorkbench workbench) {
13 logout();
14 workbench.close();
15 }
16
17 protected void logout() {
18 Subject subject = CurrentSubject.current();
19 try {
20 CurrentUser.logoutCmsSession(subject);
21 } catch (Exception e) {
22 throw new IllegalStateException("Cannot log out", e);
23 }
24 }
25
26 }