obtain ServerInfoDTO eagerly and use for authorization purposes

Change-Id: I53a5957ac0cbfe67d33e233593bfbf5f76cf51e7
This commit is contained in:
Axel Uhl
2018-09-25 00:20:14 +02:00
parent 43a17f6e9e
commit d9e46a7675
3 changed files with 13 additions and 20 deletions
@@ -22,7 +22,7 @@ import com.sap.sse.common.Util;
import com.sap.sse.common.Util.Triple;
import com.sap.sse.gwt.client.AbstractEntryPoint;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.ServerInfoRetriever;
import com.sap.sse.gwt.client.ServerInfoDTO;
import com.sap.sse.gwt.client.panels.AbstractTabLayoutPanel;
import com.sap.sse.gwt.client.panels.HorizontalTabLayoutPanel;
import com.sap.sse.gwt.client.panels.VerticalTabLayoutPanel;
@@ -159,15 +159,16 @@ public class AdminConsolePanel extends HeaderPanel implements HandleTabSelectabl
}
return target;
}
public AdminConsolePanel(UserService userService,
ServerInfoRetriever buildVersionRetriever, String releaseNotesAnchorLabel,
ServerInfoDTO serverInfo, String releaseNotesAnchorLabel,
String releaseNotesURL, ErrorReporter errorReporter, LoginPanelCss loginPanelCss, StringMessages stringMessages) {
this(userService, buildVersionRetriever, releaseNotesAnchorLabel, releaseNotesURL, errorReporter, loginPanelCss,
this(userService, serverInfo, releaseNotesAnchorLabel, releaseNotesURL, errorReporter, loginPanelCss,
stringMessages, /* acceptablePermissionsRequiredToSeeWidgets==null means accept any permission */ null);
}
public AdminConsolePanel(UserService userService,
ServerInfoRetriever buildVersionRetriever, String releaseNotesAnchorLabel,
ServerInfoDTO serverInfo, String releaseNotesAnchorLabel,
String releaseNotesURL, ErrorReporter errorReporter, LoginPanelCss loginPanelCss, StringMessages stringMessages,
Iterable<? extends WildcardPermission> acceptablePermissionsRequiredToSeeWidgets) {
this.acceptablePermissionsRequiredToSeeWidgets = acceptablePermissionsRequiredToSeeWidgets;
@@ -222,7 +223,7 @@ public class AdminConsolePanel extends HeaderPanel implements HandleTabSelectabl
informationPanel.setWidth("100%");
informationPanel.setSpacing(10);
informationPanel.add(errorReporter.getPersistentInformationWidget(), DockPanel.CENTER);
SystemInformationPanel sysinfoPanel = new SystemInformationPanel(buildVersionRetriever, errorReporter, stringMessages);
SystemInformationPanel sysinfoPanel = new SystemInformationPanel(serverInfo, errorReporter, stringMessages);
sysinfoPanel.ensureDebugId("SystemInformation");
final Anchor releaseNotesLink = new Anchor(new SafeHtmlBuilder().appendEscaped(releaseNotesAnchorLabel).toSafeHtml(), releaseNotesURL);
sysinfoPanel.add(releaseNotesLink);
@@ -1,33 +1,25 @@
package com.sap.sse.gwt.adminconsole;
import com.google.gwt.dom.client.Style;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.ServerInfoDTO;
import com.sap.sse.gwt.client.ServerInfoRetriever;
public class SystemInformationPanel extends FlowPanel {
private final Label buildVersionText;
public SystemInformationPanel(final ServerInfoRetriever buildVersionRetriever, final ErrorReporter errorReporter, final StringMessages stringMessages) {
public SystemInformationPanel(final ServerInfoDTO serverInfo, final ErrorReporter errorReporter, final StringMessages stringMessages) {
super();
buildVersionText = new Label("");
addFloatingWidget(buildVersionText);
buildVersionRetriever.getServerInfo(new AsyncCallback<ServerInfoDTO>() {
@Override
public void onSuccess(ServerInfoDTO result) {
buildVersionText.setText(stringMessages.version(result.getBuildVersion()));
}
@Override
public void onFailure(Throwable caught) {
buildVersionText.setText(stringMessages.version(stringMessages.unknown()));
}
});
if (serverInfo != null) {
buildVersionText.setText(stringMessages.version(serverInfo.getBuildVersion()));
} else {
buildVersionText.setText(stringMessages.version(stringMessages.unknown()));
}
}
private void addFloatingWidget(Widget w) {