]> git.argeo.org Git - lgpl/argeo-commons.git/blob - CloseWorkbench.java
f77c94d7c03eb994844b09015df240e4809569eb
[lgpl/argeo-commons.git] / CloseWorkbench.java
1 package org.argeo.cms.e4.handlers;
2
3 import javax.security.auth.Subject;
4
5 import org.argeo.cms.auth.CurrentUser;
6 import org.argeo.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 }