import org.argeo.api.cms.CmsApp;
import org.argeo.api.cms.CmsAuth;
-import org.argeo.api.cms.CmsImageManager;
import org.argeo.api.cms.CmsLog;
import org.argeo.api.cms.CmsSession;
-import org.argeo.api.cms.CmsUi;
-import org.argeo.api.cms.CmsView;
-import org.argeo.api.cms.UxContext;
+import org.argeo.api.cms.ux.CmsImageManager;
+import org.argeo.api.cms.ux.CmsUi;
+import org.argeo.api.cms.ux.CmsView;
+import org.argeo.api.cms.ux.UxContext;
import org.argeo.cms.LocaleUtils;
import org.argeo.cms.auth.CurrentUser;
import org.argeo.cms.auth.RemoteAuthCallbackHandler;
@Override
public CmsSession getCmsSession() {
CmsSession cmsSession = cmsWebApp.getCmsApp().getCmsContext().getCmsSession(getSubject());
+ if (cmsSession == null)
+ throw new IllegalStateException("No CMS session available for " + getSubject());
return cmsSession;
}
if (getApplicationContext().getLifeCycleFactory().getLifeCycle() instanceof RWTLifeCycle) {
eventLoop: while (!shell.isDisposed()) {
try {
- if (!display.readAndDispatch()) {
- display.sleep();
- }
+ Subject.doAs(loginContext.getSubject(), new PrivilegedAction<Void>() {
+ @Override
+ public Void run() {
+ if (!display.readAndDispatch()) {
+ display.sleep();
+ }
+ return null;
+ }
+ });
} catch (Throwable e) {
if (e instanceof SWTError) {
SWTError swtError = (SWTError) e;