From e07ded4632e53f8b8869763bc1f1f4091361e76e Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 26 Oct 2020 12:36:02 +0100 Subject: [PATCH] Add doAs in RCP CmsView. --- .../src/org/argeo/cms/ui/rcp/CmsRcpApp.java | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/rcp/org.argeo.cms.ui.rcp/src/org/argeo/cms/ui/rcp/CmsRcpApp.java b/rcp/org.argeo.cms.ui.rcp/src/org/argeo/cms/ui/rcp/CmsRcpApp.java index aa843c459..5c6411a5f 100644 --- a/rcp/org.argeo.cms.ui.rcp/src/org/argeo/cms/ui/rcp/CmsRcpApp.java +++ b/rcp/org.argeo.cms.ui.rcp/src/org/argeo/cms/ui/rcp/CmsRcpApp.java @@ -157,43 +157,40 @@ public class CmsRcpApp implements CmsView { @Override public UxContext getUxContext() { - // TODO Auto-generated method stub - return null; + throw new UnsupportedOperationException(); } @Override public void navigateTo(String state) { - // TODO Auto-generated method stub - + throw new UnsupportedOperationException(); } @Override public void authChange(LoginContext loginContext) { - // TODO Auto-generated method stub - } @Override public void logout() { - // TODO Auto-generated method stub - + if (loginContext != null) + try { + loginContext.logout(); + } catch (LoginException e) { + log.error("Cannot log out", e); + } } @Override public void exception(Throwable e) { - // TODO Auto-generated method stub - + log.error("Unexpected exception in CMS RCP", e); } @Override public CmsImageManager getImageManager() { - // TODO Auto-generated method stub - return null; + throw new UnsupportedOperationException(); } @Override public boolean isAnonymous() { - // TODO Auto-generated method stub return false; } @@ -214,6 +211,14 @@ public class CmsRcpApp implements CmsView { eventAdmin.sendEvent(new Event(topic, properties)); } + public T doAs(PrivilegedAction action) { + return Subject.doAs(getSubject(), action); + } + + protected Subject getSubject() { + return loginContext.getSubject(); + } + /* * DEPENDENCY INJECTION */ -- 2.39.2