mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-16 10:48:47 +00:00
bug6275:tocken intr
This commit is contained in:
+20
-6
@@ -254,6 +254,7 @@ public abstract class EventDialog extends DataEntryDialogWithDateTimeBox<EventDT
|
||||
leaderboardGroupTab.ensureDebugId("LeaderboardGroupsTab");
|
||||
tabPanel.add(leaderboardGroupTab, stringMessages.leaderboardGroups());
|
||||
final VerticalPanel courseAreasPanel = new VerticalPanel();
|
||||
courseAreasPanel.setSpacing(5);
|
||||
final ListBox copyFromEventDropDown = createListBox(false);
|
||||
copyFromEventDropDown.addItem(stringMessages.pleaseSelect());
|
||||
final List<EventDTO> sortedExistingEvents = new ArrayList<>(existingEvents);
|
||||
@@ -285,6 +286,8 @@ public abstract class EventDialog extends DataEntryDialogWithDateTimeBox<EventDT
|
||||
final TextBox remoteBaseUrlBox = new TextBox();
|
||||
remoteBaseUrlBox.setValue(SharedLandscapeConstants.DEFAULT_SAILING_SERVER_URL);
|
||||
remoteBaseUrlBox.setVisibleLength(40);
|
||||
final TextBox bearerTokenOrNullBox = new TextBox();
|
||||
bearerTokenOrNullBox.setVisibleLength(30);
|
||||
final ListBox remoteEventDropDown = createListBox(false);
|
||||
remoteEventDropDown.setEnabled(false);
|
||||
final BusyIndicator remoteLoadBusyIndicator = new SimpleBusyIndicator();
|
||||
@@ -298,7 +301,8 @@ public abstract class EventDialog extends DataEntryDialogWithDateTimeBox<EventDT
|
||||
remoteEventDropDown.setEnabled(false);
|
||||
remoteEventsCache[0] = null;
|
||||
remoteLoadBusyIndicator.setBusy(true);
|
||||
sailingServiceWrite.getRemoteEvents(remoteBaseUrlBox.getValue(),
|
||||
final String bearerTokenOrNull = bearerTokenOrNullBox.getValue().trim().isEmpty() ? null : bearerTokenOrNullBox.getValue().trim();
|
||||
sailingServiceWrite.getRemoteEvents(remoteBaseUrlBox.getValue(), bearerTokenOrNull,
|
||||
new AsyncCallback<List<EventDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(final List<EventDTO> result) {
|
||||
@@ -335,12 +339,22 @@ public abstract class EventDialog extends DataEntryDialogWithDateTimeBox<EventDT
|
||||
}
|
||||
}
|
||||
});
|
||||
final HorizontalPanel remotePanel = new HorizontalPanel();
|
||||
final VerticalPanel remotePanel = new VerticalPanel();
|
||||
remotePanel.setWidth("100%");
|
||||
remotePanel.setSpacing(3);
|
||||
remotePanel.add(new Label(stringMessages.copyCourseAreasFromRemoteServer()));
|
||||
remotePanel.add(remoteBaseUrlBox);
|
||||
remotePanel.add(loadRemoteEventsButton);
|
||||
remotePanel.add(remoteLoadBusyIndicator);
|
||||
final HorizontalPanel remoteUrlRow = new HorizontalPanel();
|
||||
remoteUrlRow.setSpacing(3);
|
||||
remoteUrlRow.add(new Label(stringMessages.copyCourseAreasFromRemoteServer()));
|
||||
remoteUrlRow.add(remoteBaseUrlBox);
|
||||
remoteUrlRow.add(loadRemoteEventsButton);
|
||||
remoteUrlRow.add(remoteLoadBusyIndicator);
|
||||
final HorizontalPanel remoteBearerRow = new HorizontalPanel();
|
||||
remoteBearerRow.setSpacing(3);
|
||||
remoteBearerRow.add(new Label(stringMessages.bearerTokenOrNullForRemoteEvents()));
|
||||
remoteBearerRow.add(bearerTokenOrNullBox);
|
||||
remoteEventDropDown.setWidth("100%");
|
||||
remotePanel.add(remoteUrlRow);
|
||||
remotePanel.add(remoteBearerRow);
|
||||
remotePanel.add(remoteEventDropDown);
|
||||
courseAreasPanel.add(localPanel);
|
||||
courseAreasPanel.add(remotePanel);
|
||||
|
||||
+1
-1
@@ -254,7 +254,7 @@ public interface SailingService extends RemoteService, RemoteReplicationService
|
||||
|
||||
List<RemoteSailingServerReferenceDTO> getRemoteSailingServerReferences() throws UnauthorizedException;
|
||||
|
||||
List<EventDTO> getRemoteEvents(String baseUrl) throws Exception;
|
||||
List<EventDTO> getRemoteEvents(String baseUrl, String bearerTokenOrNull) throws Exception;
|
||||
|
||||
List<UrlDTO> getResultImportUrls(String resultProviderName) throws UnauthorizedException;
|
||||
|
||||
|
||||
+1
-1
@@ -284,7 +284,7 @@ public interface SailingServiceAsync extends RemoteReplicationServiceAsync {
|
||||
|
||||
void getRemoteSailingServerReferences(AsyncCallback<List<RemoteSailingServerReferenceDTO>> callback);
|
||||
|
||||
void getRemoteEvents(String baseUrl, AsyncCallback<List<EventDTO>> callback);
|
||||
void getRemoteEvents(String baseUrl, String bearerTokenOrNull, AsyncCallback<List<EventDTO>> callback);
|
||||
|
||||
void getResultImportUrls(String resultProviderName, AsyncCallback<List<UrlDTO>> callback);
|
||||
|
||||
|
||||
+1
@@ -1460,6 +1460,7 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages,
|
||||
String copyCourseAreasFromEvent();
|
||||
String copyCourseAreasFromRemoteServer();
|
||||
String loadRemoteEvents();
|
||||
String bearerTokenOrNullForRemoteEvents();
|
||||
String copyCompetitors();
|
||||
String smartphoneTracking();
|
||||
String titelOfChooseNameDialog();
|
||||
|
||||
+1
@@ -1487,6 +1487,7 @@ copyCourse=Copy Course
|
||||
copyCourseAreasFromEvent=Copy course areas from event
|
||||
copyCourseAreasFromRemoteServer=Copy course areas from remote server
|
||||
loadRemoteEvents=Load
|
||||
bearerTokenOrNullForRemoteEvents=Bearer token for remote server (leave empty for current user)
|
||||
copyCompetitors=Copy Competitors
|
||||
smartphoneTracking=Smartphone Tracking
|
||||
titelOfChooseNameDialog=Choose a name
|
||||
|
||||
+1
@@ -1457,6 +1457,7 @@ copyCourse=Kurs kopieren
|
||||
copyCourseAreasFromEvent=Regattabahnen von Veranstaltung kopieren
|
||||
copyCourseAreasFromRemoteServer=Regattabahnen von externem Server kopieren
|
||||
loadRemoteEvents=Laden
|
||||
bearerTokenOrNullForRemoteEvents=Bearer-Token für externen Server (leer lassen für aktuellen Benutzer)
|
||||
copyCompetitors=Teilnehmer kopieren
|
||||
smartphoneTracking=Smartphone Tracking
|
||||
titelOfChooseNameDialog= Wählen sie einen Namen
|
||||
|
||||
+2
-2
@@ -3570,9 +3570,9 @@ public class SailingServiceImpl extends ResultCachingProxiedRemoteServiceServlet
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EventDTO> getRemoteEvents(final String baseUrl) throws Exception {
|
||||
public List<EventDTO> getRemoteEvents(final String baseUrl, final String bearerTokenOrNull) throws Exception {
|
||||
final List<EventDTO> result = new ArrayList<>();
|
||||
for (final EventBase event : getService().getRemoteEvents(baseUrl)) {
|
||||
for (final EventBase event : getService().getRemoteEvents(baseUrl, bearerTokenOrNull)) {
|
||||
final EventDTO eventDTO = new EventDTO(event.getName());
|
||||
copyEventBaseFieldsToDTO(event, eventDTO);
|
||||
result.add(eventDTO);
|
||||
|
||||
+7
@@ -774,6 +774,13 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch
|
||||
*/
|
||||
Iterable<EventBase> getRemoteEvents(String baseUrl) throws Exception;
|
||||
|
||||
/**
|
||||
* Like {@link #getRemoteEvents(String)}, but uses the provided {@code bearerTokenOrNull} instead of the current
|
||||
* user's bearer token if non-null. Useful for cross-security-realm access, e.g. fetching events from a production
|
||||
* server while running locally.
|
||||
*/
|
||||
Iterable<EventBase> getRemoteEvents(String baseUrl, String bearerTokenOrNull) throws Exception;
|
||||
|
||||
/**
|
||||
* Searches the content of this server, not that of any remote servers referenced by any {@link RemoteSailingServerReference}s.
|
||||
*/
|
||||
|
||||
+11
-1
@@ -1851,7 +1851,17 @@ Replicator {
|
||||
if (factory == null) {
|
||||
throw new IllegalStateException("SailingServerFactory not available");
|
||||
}
|
||||
final SailingServer sailingServer = factory.getSailingServer(new java.net.URL(baseUrl));
|
||||
final SailingServer sailingServer = factory.getSailingServer(new URL(baseUrl));
|
||||
return sailingServer.getEvents();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<EventBase> getRemoteEvents(final String baseUrl, final String bearerTokenOrNull) throws Exception {
|
||||
final SailingServerFactory factory = sailingServerFactoryTracker == null ? null : sailingServerFactoryTracker.getService();
|
||||
if (factory == null) {
|
||||
throw new IllegalStateException("SailingServerFactory not available");
|
||||
}
|
||||
final SailingServer sailingServer = factory.getSailingServer(new URL(baseUrl), bearerTokenOrNull);
|
||||
return sailingServer.getEvents();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user