mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-14 22:43:57 +00:00
Merge remote-tracking branch 'server/master'
This commit is contained in:
commit
0be0e26e73
17 files changed
+179
-111
No files matched your search
+2
-2
@@ -24,7 +24,7 @@ import com.google.gwt.view.client.ListDataProvider;
|
||||
import com.sap.sailing.domain.common.RegattaIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.security.SecuredDomainType;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.swisstiming.EditSwissTimingConnectionDialog;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.swisstiming.SwissTimingConnectionDialog;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.swisstiming.SwissTimingConnectionTableWrapper;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
@@ -91,7 +91,7 @@ public class SwissTimingEventManagementPanel extends AbstractEventManagementPane
|
||||
() -> connectionsTable.refreshSwissTimingConnectionList());
|
||||
// Add SwissTiming Connection
|
||||
buttonPanel.addCreateAction(stringMessages.addSwissTimingConnection(),
|
||||
() -> new EditSwissTimingConnectionDialog(new SwissTimingConfigurationWithSecurityDTO(),
|
||||
() -> new SwissTimingConnectionDialog(
|
||||
new DialogCallback<SwissTimingConfigurationWithSecurityDTO>() {
|
||||
@Override
|
||||
public void ok(SwissTimingConfigurationWithSecurityDTO editedConnection) {
|
||||
|
||||
+2
-2
@@ -26,7 +26,7 @@ import com.google.gwt.view.client.ListDataProvider;
|
||||
import com.sap.sailing.domain.common.RegattaIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.security.SecuredDomainType;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.swisstiming.EditSwissTimingArchivedConnectionDialog;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.swisstiming.SwissTimingArchivedConnectionDialog;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.swisstiming.SwissTimingArchivedConnectionTableWrapper;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
@@ -255,7 +255,7 @@ public class SwissTimingReplayConnectorPanel extends AbstractEventManagementPane
|
||||
buttonPanel.addUnsecuredAction(stringMessages.refresh(), () -> connectionsTable.refreshConnectionList());
|
||||
// Create action
|
||||
buttonPanel.addCreateAction(stringMessages.addSwissTimingAchivedConnection(),
|
||||
() -> new EditSwissTimingArchivedConnectionDialog(new SwissTimingArchiveConfigurationWithSecurityDTO(),
|
||||
() -> new SwissTimingArchivedConnectionDialog(
|
||||
new DialogCallback<SwissTimingArchiveConfigurationWithSecurityDTO>() {
|
||||
@Override
|
||||
public void ok(SwissTimingArchiveConfigurationWithSecurityDTO editedConnection) {
|
||||
|
||||
+2
-3
@@ -30,7 +30,7 @@ import com.google.gwt.view.client.SelectionModel;
|
||||
import com.sap.sailing.domain.common.RegattaIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.security.SecuredDomainType;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.tractrac.EditTracTracConnectionDialog;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.tractrac.TracTracConnectionDialog;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.tractrac.TracTracConnectionTableWrapper;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
@@ -123,8 +123,7 @@ public class TracTracEventManagementPanel extends AbstractEventManagementPanel {
|
||||
final AccessControlledButtonPanel buttonPanel = new AccessControlledButtonPanel(userService, SecuredDomainType.TRACKED_RACE);
|
||||
buttonPanel.addUnsecuredAction(stringMessages.refresh(), () -> connectionsTable.refreshTracTracConnectionList());
|
||||
Button addCreateAction = buttonPanel.addCreateAction(stringMessages.addTracTracConnection(),
|
||||
() -> new EditTracTracConnectionDialog(new TracTracConfigurationWithSecurityDTO(
|
||||
userService.getCurrentUser() == null ? null : userService.getCurrentUser().getName()),
|
||||
() -> new TracTracConnectionDialog(
|
||||
new DialogCallback<TracTracConfigurationWithSecurityDTO>() {
|
||||
@Override
|
||||
public void ok(TracTracConfigurationWithSecurityDTO editedConnection) {
|
||||
|
||||
+11
-22
@@ -12,16 +12,16 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
import com.sap.sse.security.ui.client.UserService;
|
||||
|
||||
/**
|
||||
* Edits a {@link SwissTimingArchiveConfigurationWithSecurityDTO} object. Can be accessed from
|
||||
* {@link SwissTimingArchivedConnectionTableWrapper}
|
||||
* Creates a {@link SwissTimingArchiveConfigurationWithSecurityDTO} object. Can be accessed from
|
||||
* {@link SwissTimingReplayConnectorPanel}
|
||||
*/
|
||||
public class EditSwissTimingArchivedConnectionDialog
|
||||
public class SwissTimingArchivedConnectionDialog
|
||||
extends DataEntryDialog<SwissTimingArchiveConfigurationWithSecurityDTO> {
|
||||
private static final StringMessages stringMessages = StringMessages.INSTANCE;
|
||||
private Grid grid;
|
||||
|
||||
private TextBox jsonURLTextBox;
|
||||
private final SwissTimingArchiveConfigurationWithSecurityDTO dtoToEdit;
|
||||
protected TextBox jsonURLTextBox;
|
||||
protected String creatorName;
|
||||
|
||||
private static class EmptyTextValidator implements Validator<SwissTimingArchiveConfigurationWithSecurityDTO> {
|
||||
@Override
|
||||
@@ -37,26 +37,15 @@ public class EditSwissTimingArchivedConnectionDialog
|
||||
}
|
||||
|
||||
/**
|
||||
* The class creates the UI-dialog to type in the Data about a the selected swiss timing account.
|
||||
*
|
||||
* @param userToEdit
|
||||
* The 'userToEdit' parameter contains the user which should be changed or initialized.
|
||||
* The class creates the UI-dialog to create a new {@link SwissTimingArchiveConfigurationWithSecurityDTO}.
|
||||
*/
|
||||
public EditSwissTimingArchivedConnectionDialog(final SwissTimingArchiveConfigurationWithSecurityDTO dtoToEdit,
|
||||
public SwissTimingArchivedConnectionDialog(
|
||||
final DialogCallback<SwissTimingArchiveConfigurationWithSecurityDTO> callback,
|
||||
final UserService userService,
|
||||
final ErrorReporter errorReporter) {
|
||||
super(stringMessages.editSwissTimingAchivedConnection(), null, stringMessages.ok(), stringMessages.cancel(),
|
||||
final UserService userService, final ErrorReporter errorReporter) {
|
||||
super(stringMessages.swissTimingAchivedConnection(), null, stringMessages.ok(), stringMessages.cancel(),
|
||||
/* validator */ new EmptyTextValidator(), /* animationEnabled */true, callback);
|
||||
this.dtoToEdit = dtoToEdit;
|
||||
this.ensureDebugId("EditSwissTimingArchivedConnectionDialog");
|
||||
this.ensureDebugId("SwissTimingArchivedConnectionDialog");
|
||||
createUi();
|
||||
setData(dtoToEdit);
|
||||
}
|
||||
|
||||
private void setData(final SwissTimingArchiveConfigurationWithSecurityDTO dtotoEdit) {
|
||||
jsonURLTextBox.setText(dtotoEdit.getJsonUrl());
|
||||
validateAndUpdate();
|
||||
}
|
||||
|
||||
private void createUi() {
|
||||
@@ -80,7 +69,7 @@ public class EditSwissTimingArchivedConnectionDialog
|
||||
@Override
|
||||
protected SwissTimingArchiveConfigurationWithSecurityDTO getResult() {
|
||||
final String jsonURL = jsonURLTextBox.getValue();
|
||||
return new SwissTimingArchiveConfigurationWithSecurityDTO(jsonURL, dtoToEdit.getCreatorName());
|
||||
return new SwissTimingArchiveConfigurationWithSecurityDTO(jsonURL, creatorName);
|
||||
}
|
||||
|
||||
@Override
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole.swisstiming;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.SwissTimingArchiveConfigurationWithSecurityDTO;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.security.ui.client.UserService;
|
||||
|
||||
/**
|
||||
* Edits a {@link SwissTimingArchiveConfigurationWithSecurityDTO} object. Can be accessed from
|
||||
* {@link SwissTimingArchivedConnectionTableWrapper}
|
||||
*/
|
||||
public class SwissTimingArchivedConnectionEditDialog extends SwissTimingArchivedConnectionDialog {
|
||||
/**
|
||||
* The class creates the UI-dialog to the selected {@link SwissTimingArchiveConfigurationWithSecurityDTO}.
|
||||
*
|
||||
* @param dtoToEdit
|
||||
* The 'dtoToEdit' parameter contains the {@link SwissTimingArchiveConfigurationWithSecurityDTO} which should be changed
|
||||
*/
|
||||
public SwissTimingArchivedConnectionEditDialog(final SwissTimingArchiveConfigurationWithSecurityDTO dtoToEdit,
|
||||
final DialogCallback<SwissTimingArchiveConfigurationWithSecurityDTO> callback,
|
||||
final UserService userService, final ErrorReporter errorReporter) {
|
||||
super(callback, userService, errorReporter);
|
||||
setData(dtoToEdit);
|
||||
jsonURLTextBox.setReadOnly(true);
|
||||
}
|
||||
|
||||
private void setData(final SwissTimingArchiveConfigurationWithSecurityDTO dtotoEdit) {
|
||||
creatorName = dtotoEdit.getCreatorName();
|
||||
jsonURLTextBox.setText(dtotoEdit.getJsonUrl());
|
||||
validateAndUpdate();
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -73,7 +73,7 @@ public class SwissTimingArchivedConnectionTableWrapper extends
|
||||
final AccessControlledActionsColumn<SwissTimingArchiveConfigurationWithSecurityDTO, DefaultActionsImagesBarCell> actionColumn = create(
|
||||
new DefaultActionsImagesBarCell(stringMessages), userService);
|
||||
actionColumn.addAction(DefaultActionsImagesBarCell.ACTION_UPDATE, DefaultActions.UPDATE, dto -> {
|
||||
new EditSwissTimingArchivedConnectionDialog(dto,
|
||||
new SwissTimingArchivedConnectionEditDialog(dto,
|
||||
new DialogCallback<SwissTimingArchiveConfigurationWithSecurityDTO>() {
|
||||
@Override
|
||||
public void ok(final SwissTimingArchiveConfigurationWithSecurityDTO editedObject) {
|
||||
|
||||
+21
-36
@@ -13,23 +13,25 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
import com.sap.sse.security.ui.client.UserService;
|
||||
|
||||
/**
|
||||
* Edits a {@link SwissTimingConfigurationWithSecurityDTO} object. Can be accessed from
|
||||
* {@link SwissTimingConnectionTableWrapper}. The Manage2Sail event ID and the complete URL
|
||||
* Creates a {@link SwissTimingConfigurationWithSecurityDTO} object. Can be accessed from
|
||||
* {@link SwissTimingEventManagementPanel}. The Manage2Sail event ID and the complete URL
|
||||
* field update each other mutually upon manual update.
|
||||
*/
|
||||
public class EditSwissTimingConnectionDialog extends DataEntryDialog<SwissTimingConfigurationWithSecurityDTO> {
|
||||
public class SwissTimingConnectionDialog extends DataEntryDialog<SwissTimingConfigurationWithSecurityDTO> {
|
||||
private static final StringMessages stringMessages = StringMessages.INSTANCE;
|
||||
|
||||
private Grid grid;
|
||||
|
||||
private TextBox manage2SailEventIdTextBox;
|
||||
private TextBox manage2SailEventUrlJsonTextBox;
|
||||
private TextBox hostnameTextBox;
|
||||
private TextBox portTextBox;
|
||||
private TextBox updateUrlTextBox;
|
||||
private TextBox updateUsernameTextBox;
|
||||
private PasswordTextBox updatePasswordTextBox;
|
||||
private final SwissTimingConfigurationWithSecurityDTO dtoToEdit;
|
||||
protected TextBox manage2SailEventIdTextBox;
|
||||
protected TextBox manage2SailEventUrlJsonTextBox;
|
||||
protected TextBox hostnameTextBox;
|
||||
protected TextBox portTextBox;
|
||||
protected TextBox updateUrlTextBox;
|
||||
protected TextBox updateUsernameTextBox;
|
||||
protected PasswordTextBox updatePasswordTextBox;
|
||||
protected String name;
|
||||
protected String creatorName;
|
||||
|
||||
|
||||
private static class EmptyFieldValidator implements Validator<SwissTimingConfigurationWithSecurityDTO> {
|
||||
@Override
|
||||
@@ -45,31 +47,14 @@ public class EditSwissTimingConnectionDialog extends DataEntryDialog<SwissTiming
|
||||
}
|
||||
|
||||
/**
|
||||
* The class creates the UI-dialog to type in the Data about a the selected swiss timing account.
|
||||
*
|
||||
* @param userToEdit
|
||||
* The 'userToEdit' parameter contains the user which should be changed or initialized.
|
||||
* The class creates the UI-dialog create a new {@link SwissTimingConfigurationWithSecurityDTO}.
|
||||
*/
|
||||
public EditSwissTimingConnectionDialog(final SwissTimingConfigurationWithSecurityDTO dtotoEdit,
|
||||
final DialogCallback<SwissTimingConfigurationWithSecurityDTO> callback, final UserService userService,
|
||||
final ErrorReporter errorReporter) {
|
||||
super(stringMessages.editSwissTimingConnections(), null, stringMessages.ok(), stringMessages.cancel(),
|
||||
/* validator */ new EmptyFieldValidator(),
|
||||
/* animationEnabled */true, callback);
|
||||
this.dtoToEdit = dtotoEdit;
|
||||
this.ensureDebugId("EditTracTracConnectionDialog");
|
||||
public SwissTimingConnectionDialog(final DialogCallback<SwissTimingConfigurationWithSecurityDTO> callback,
|
||||
final UserService userService, final ErrorReporter errorReporter) {
|
||||
super(stringMessages.swissTimingConnections(), null, stringMessages.ok(), stringMessages.cancel(),
|
||||
/* validator */ new EmptyFieldValidator(), /* animationEnabled */true, callback);
|
||||
this.ensureDebugId("SwissTimingConnectionEditDialog");
|
||||
createUi();
|
||||
setData(dtotoEdit);
|
||||
}
|
||||
|
||||
private void setData(final SwissTimingConfigurationWithSecurityDTO dtoToEdit) {
|
||||
manage2SailEventUrlJsonTextBox.setText(dtoToEdit.getJsonUrl());
|
||||
hostnameTextBox.setText(dtoToEdit.getHostname());
|
||||
portTextBox.setText(dtoToEdit.getPort() == null ? "" : ("" + dtoToEdit.getPort()));
|
||||
updateUrlTextBox.setText(dtoToEdit.getUpdateURL());
|
||||
updateUsernameTextBox.setText(dtoToEdit.getUpdateUsername());
|
||||
updatePasswordTextBox.setText(dtoToEdit.getUpdatePassword());
|
||||
validateAndUpdate();
|
||||
}
|
||||
|
||||
private void createUi() {
|
||||
@@ -170,10 +155,10 @@ public class EditSwissTimingConnectionDialog extends DataEntryDialog<SwissTiming
|
||||
}
|
||||
}
|
||||
|
||||
return new SwissTimingConfigurationWithSecurityDTO(dtoToEdit.getName(),
|
||||
return new SwissTimingConfigurationWithSecurityDTO(name,
|
||||
manage2SailEventUrlJsonTextBox.getValue(), hostnameTextBox.getValue(), port,
|
||||
updateUrlTextBox.getValue(), updateUsernameTextBox.getValue(), updatePasswordTextBox.getValue(),
|
||||
dtoToEdit.getCreatorName());
|
||||
creatorName);
|
||||
}
|
||||
|
||||
@Override
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole.swisstiming;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.SwissTimingConfigurationWithSecurityDTO;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.security.ui.client.UserService;
|
||||
|
||||
/**
|
||||
* Edits a {@link SwissTimingConfigurationWithSecurityDTO} object. Can be accessed from
|
||||
* {@link SwissTimingConnectionTableWrapper}.The Manage2Sail event ID and the complete URL
|
||||
* field update each other mutually upon manual update.
|
||||
*/
|
||||
public class SwissTimingConnectionEditDialog extends SwissTimingConnectionDialog {
|
||||
/**
|
||||
* The class creates the UI-dialog to edit a selected {@link SwissTimingConfigurationWithSecurityDTO}.
|
||||
*
|
||||
* @param dtoToEdit
|
||||
* The 'dtoToEdit' parameter contains the {@link SwissTimingConfigurationWithSecurityDTO} which should be edited.
|
||||
*/
|
||||
public SwissTimingConnectionEditDialog(final SwissTimingConfigurationWithSecurityDTO dtoToEdit,
|
||||
final DialogCallback<SwissTimingConfigurationWithSecurityDTO> callback, final UserService userService,
|
||||
final ErrorReporter errorReporter) {
|
||||
super(callback, userService, errorReporter);
|
||||
setData(dtoToEdit);
|
||||
manage2SailEventUrlJsonTextBox.setReadOnly(true);
|
||||
}
|
||||
|
||||
private void setData(final SwissTimingConfigurationWithSecurityDTO dtoToEdit) {
|
||||
name = dtoToEdit.getName();
|
||||
creatorName = dtoToEdit.getCreatorName();
|
||||
manage2SailEventUrlJsonTextBox.setText(dtoToEdit.getJsonUrl());
|
||||
hostnameTextBox.setText(dtoToEdit.getHostname());
|
||||
portTextBox.setText(dtoToEdit.getPort() == null ? "" : ("" + dtoToEdit.getPort()));
|
||||
updateUrlTextBox.setText(dtoToEdit.getUpdateURL());
|
||||
updateUsernameTextBox.setText(dtoToEdit.getUpdateUsername());
|
||||
updatePasswordTextBox.setText(dtoToEdit.getUpdatePassword());
|
||||
validateAndUpdate();
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -37,7 +37,7 @@ import com.sap.sse.security.ui.client.i18n.StringMessages;
|
||||
* event id, the event json url, the hostname, the port, the update url, the username for sending updates, the password
|
||||
* for sending updates, the name of the creator, the group and user each user group is owned by. There are options edit
|
||||
* or to delete the connection, change the ownership or edit the associated ACL. Editing the connection will open a new
|
||||
* instance of {@link EditSwissTimingConnectionDialog}.
|
||||
* instance of {@link SwissTimingConnectionDialog}.
|
||||
*/
|
||||
public class SwissTimingConnectionTableWrapper extends
|
||||
TableWrapper<SwissTimingConfigurationWithSecurityDTO, RefreshableSingleSelectionModel<SwissTimingConfigurationWithSecurityDTO>, StringMessages, CellTableWithCheckboxResources> {
|
||||
@@ -88,7 +88,7 @@ public class SwissTimingConnectionTableWrapper extends
|
||||
final AccessControlledActionsColumn<SwissTimingConfigurationWithSecurityDTO, DefaultActionsImagesBarCell> actionColumn = create(
|
||||
new DefaultActionsImagesBarCell(stringMessages), userService);
|
||||
actionColumn.addAction(DefaultActionsImagesBarCell.ACTION_UPDATE, DefaultActions.UPDATE, dto -> {
|
||||
new EditSwissTimingConnectionDialog(dto, new DialogCallback<SwissTimingConfigurationWithSecurityDTO>() {
|
||||
new SwissTimingConnectionEditDialog(dto, new DialogCallback<SwissTimingConfigurationWithSecurityDTO>() {
|
||||
@Override
|
||||
public void ok(final SwissTimingConfigurationWithSecurityDTO editedObject) {
|
||||
sailingServiceAsync.updateSwissTimingConfiguration(editedObject,
|
||||
|
||||
+18
-31
@@ -13,46 +13,32 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
import com.sap.sse.security.ui.client.UserService;
|
||||
|
||||
/**
|
||||
* Edits a {@link TracTracConfigurationWithSecurityDTO} object. Can be accessed from
|
||||
* {@link TracTracConnectionTableWrapper}
|
||||
* Creates a {@link TracTracConfigurationWithSecurityDTO} object. Can be accessed from
|
||||
* {@link TracTracEventManagementPanel}
|
||||
*/
|
||||
public class EditTracTracConnectionDialog extends DataEntryDialog<TracTracConfigurationWithSecurityDTO> {
|
||||
public class TracTracConnectionDialog extends DataEntryDialog<TracTracConfigurationWithSecurityDTO> {
|
||||
private static final StringMessages stringMessages = StringMessages.INSTANCE;
|
||||
private Grid grid;
|
||||
|
||||
private TextBox storedURITextBox;
|
||||
private TextBox liveURITextBox;
|
||||
private TextBox jsonURLTextBox;
|
||||
private TextBox tracTracUpdateURITextBox;
|
||||
private TextBox tractracUsernameTextBox;
|
||||
private PasswordTextBox tractracPasswordTextBox;
|
||||
private final TracTracConfigurationWithSecurityDTO dtoToEdit;
|
||||
protected TextBox storedURITextBox;
|
||||
protected TextBox liveURITextBox;
|
||||
protected TextBox jsonURLTextBox;
|
||||
protected TextBox tracTracUpdateURITextBox;
|
||||
protected TextBox tractracUsernameTextBox;
|
||||
protected PasswordTextBox tractracPasswordTextBox;
|
||||
protected String creatorName;
|
||||
protected String name;
|
||||
|
||||
/**
|
||||
* The class creates the UI-dialog to type in the Data about a the selected trac trac account.
|
||||
*
|
||||
* @param userToEdit
|
||||
* The 'userToEdit' parameter contains the user which should be changed or initialized.
|
||||
* The class creates the UI-dialog to create a {@link TracTracConfigurationWithSecurityDTO}.
|
||||
*/
|
||||
public EditTracTracConnectionDialog(final TracTracConfigurationWithSecurityDTO dtotoEdit,
|
||||
public TracTracConnectionDialog(
|
||||
final DialogCallback<TracTracConfigurationWithSecurityDTO> callback, final UserService userService,
|
||||
final ErrorReporter errorReporter) {
|
||||
super(stringMessages.editTracTracConnection(), null, stringMessages.ok(), stringMessages.cancel(),
|
||||
super(stringMessages.tracTracConnection(), /* message */null, stringMessages.ok(), stringMessages.cancel(),
|
||||
/* validator */ null, /* animationEnabled */true, callback);
|
||||
this.dtoToEdit = dtotoEdit;
|
||||
this.ensureDebugId("EditTracTracConnectionDialog");
|
||||
this.ensureDebugId("TracTracConnectionDialog");
|
||||
createUi();
|
||||
setData(dtotoEdit);
|
||||
}
|
||||
|
||||
private void setData(final TracTracConfigurationWithSecurityDTO dtotoEdit) {
|
||||
storedURITextBox.setText(dtotoEdit.getStoredDataURI());
|
||||
liveURITextBox.setText(dtotoEdit.getLiveDataURI());
|
||||
jsonURLTextBox.setText(dtotoEdit.getJsonUrl());
|
||||
tracTracUpdateURITextBox.setText(dtotoEdit.getCourseDesignUpdateURI());
|
||||
tractracUsernameTextBox.setText(dtotoEdit.getTracTracUsername());
|
||||
tractracPasswordTextBox.setText(dtotoEdit.getTracTracPassword());
|
||||
super.getOkButton().setEnabled(!jsonURLTextBox.getText().isEmpty());
|
||||
}
|
||||
|
||||
private void createUi() {
|
||||
@@ -79,6 +65,7 @@ public class EditTracTracConnectionDialog extends DataEntryDialog<TracTracConfig
|
||||
jsonURLTextBox = createTextBox("");
|
||||
jsonURLTextBox.ensureDebugId("JsonURLTextBox");
|
||||
jsonURLTextBox.setVisibleLength(100);
|
||||
|
||||
// validation: User should not create empty connections
|
||||
jsonURLTextBox.addKeyUpHandler(e -> super.getOkButton().setEnabled(!jsonURLTextBox.getText().isEmpty()));
|
||||
grid.setWidget(3, 0, jsonURLLabel);
|
||||
@@ -119,8 +106,8 @@ public class EditTracTracConnectionDialog extends DataEntryDialog<TracTracConfig
|
||||
final String tractracUsername = tractracUsernameTextBox.getValue();
|
||||
final String tractracPassword = tractracPasswordTextBox.getValue();
|
||||
|
||||
return new TracTracConfigurationWithSecurityDTO(dtoToEdit.getName(), jsonURL, liveDataURI, storedDataURI,
|
||||
courseDesignUpdateURI, tractracUsername, tractracPassword, dtoToEdit.getCreatorName());
|
||||
return new TracTracConfigurationWithSecurityDTO(name, jsonURL, liveDataURI, storedDataURI,
|
||||
courseDesignUpdateURI, tractracUsername, tractracPassword, creatorName);
|
||||
}
|
||||
|
||||
@Override
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole.tractrac;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.TracTracConfigurationWithSecurityDTO;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.security.ui.client.UserService;
|
||||
|
||||
/**
|
||||
* Edits a {@link TracTracConfigurationWithSecurityDTO} object. Can be accessed from
|
||||
* {@link TracTracConnectionTableWrapper}
|
||||
*/
|
||||
public class TracTracConnectionEditDialog extends TracTracConnectionDialog {
|
||||
/**
|
||||
* The class creates the UI-dialog to edit the selected {@link TracTracConfigurationWithSecurityDTO}.
|
||||
*
|
||||
* @param dtoToEdit
|
||||
* The 'dtoToEdit' parameter contains the {@link TracTracConfigurationWithSecurityDTO} which should be edited.
|
||||
*/
|
||||
public TracTracConnectionEditDialog(final TracTracConfigurationWithSecurityDTO dtoToEdit,
|
||||
final DialogCallback<TracTracConfigurationWithSecurityDTO> callback, final UserService userService,
|
||||
final ErrorReporter errorReporter) {
|
||||
super(callback, userService, errorReporter);
|
||||
setData(dtoToEdit);
|
||||
jsonURLTextBox.setReadOnly(true);
|
||||
}
|
||||
|
||||
private void setData(final TracTracConfigurationWithSecurityDTO dtotoEdit) {
|
||||
name = dtotoEdit.getName();
|
||||
creatorName = dtotoEdit.getCreatorName();
|
||||
storedURITextBox.setText(dtotoEdit.getStoredDataURI());
|
||||
liveURITextBox.setText(dtotoEdit.getLiveDataURI());
|
||||
jsonURLTextBox.setText(dtotoEdit.getJsonUrl());
|
||||
tracTracUpdateURITextBox.setText(dtotoEdit.getCourseDesignUpdateURI());
|
||||
tractracUsernameTextBox.setText(dtotoEdit.getTracTracUsername());
|
||||
tractracPasswordTextBox.setText(dtotoEdit.getTracTracPassword());
|
||||
super.getOkButton().setEnabled(!jsonURLTextBox.getText().isEmpty());
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -38,7 +38,7 @@ import com.sap.sse.security.ui.client.i18n.StringMessages;
|
||||
* URI, the Stored Uri, the JSON URL, the TracTrac Server Update URI, the TracTrac user name, the TracTrac password, the
|
||||
* name of the creator, the group and user each user group is owned by. There are options edit or to delete the
|
||||
* connection, change the ownership or edit the associated ACL. Editing the connection will open a new instance of
|
||||
* {@link EditTracTracConnectionDialog}.
|
||||
* {@link TracTracConnectionDialog}.
|
||||
*/
|
||||
public class TracTracConnectionTableWrapper extends
|
||||
TableWrapper<TracTracConfigurationWithSecurityDTO, RefreshableSingleSelectionModel<TracTracConfigurationWithSecurityDTO>, StringMessages, CellTableWithCheckboxResources> {
|
||||
@@ -86,7 +86,7 @@ public class TracTracConnectionTableWrapper extends
|
||||
final AccessControlledActionsColumn<TracTracConfigurationWithSecurityDTO, DefaultActionsImagesBarCell> actionColumn = create(
|
||||
new DefaultActionsImagesBarCell(stringMessages), userService);
|
||||
actionColumn.addAction(DefaultActionsImagesBarCell.ACTION_UPDATE, DefaultActions.UPDATE, dto -> {
|
||||
new EditTracTracConnectionDialog(dto, new DialogCallback<TracTracConfigurationWithSecurityDTO>() {
|
||||
new TracTracConnectionEditDialog(dto, new DialogCallback<TracTracConfigurationWithSecurityDTO>() {
|
||||
@Override
|
||||
public void ok(final TracTracConfigurationWithSecurityDTO editedObject) {
|
||||
sailingServiceAsync.updateTracTracConfiguration(editedObject,
|
||||
|
||||
+3
-3
@@ -2254,13 +2254,13 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages,
|
||||
String doYouReallyWantToRemoveDeviceConfiguration(String name);
|
||||
String errorFetchingSimulationData(String message);
|
||||
String addTracTracConnection();
|
||||
String editTracTracConnection();
|
||||
String tracTracConnection();
|
||||
String filterTracTracConnections();
|
||||
String creatorName();
|
||||
String editSwissTimingAchivedConnection();
|
||||
String swissTimingAchivedConnection();
|
||||
String addSwissTimingAchivedConnection();
|
||||
String filterSwissTimingAchivedConnections();
|
||||
String editSwissTimingConnections();
|
||||
String swissTimingConnections();
|
||||
String filterSwissTimingConnections();
|
||||
String updateURL();
|
||||
String addSwissTimingConnection();
|
||||
|
||||
+3
-3
@@ -2255,14 +2255,14 @@ errorFetchingSimulationData=An Error occured while fetching simulation data: {0}
|
||||
usernameAndPasswordMustBothBeSet=Username and password must both be filled or empty
|
||||
explainUserName=Username to use for authentification on the master
|
||||
explainPassword=Password to use for authentification on the master
|
||||
tracTracConnection=TracTrac Connection
|
||||
addTracTracConnection=Add TracTrac Connection
|
||||
editTracTracConnection=Edit TracTrac Connection
|
||||
filterTracTracConnections=Filter TracTrac Connections
|
||||
creatorName=Creator Name
|
||||
swissTimingAchivedConnection=SwissTimingArchived Connection
|
||||
addSwissTimingAchivedConnection=Add SwissTimingArchived Connection
|
||||
editSwissTimingAchivedConnection=Edit SwissTimingArchived Connection
|
||||
filterSwissTimingAchivedConnections=Filter SwissTimingArchived Connections
|
||||
editSwissTimingConnections=Edit SwissTiming Connection
|
||||
swissTimingConnections=SwissTiming Connection
|
||||
filterSwissTimingConnections=Filter SwissTiming Connections
|
||||
addSwissTimingConnection=Add SwissTiming Connection
|
||||
updateURL=Update URL
|
||||
|
||||
+3
-3
@@ -2252,13 +2252,13 @@ usernameAndPasswordMustBothBeSet=Username und Passwort müssen beide entweder ge
|
||||
explainUserName=Der Benutzername der zur Authentifizierung auf dem Master eingesetzt wird
|
||||
explainPassword=Das Password das zur Authentifizierung auf dem Master eingesetzt wird
|
||||
addTracTracConnection=TracTrac Verbindung hinzufügen
|
||||
editTracTracConnection=TracTrac Verbindung bearbeiten
|
||||
tracTracConnection=TracTrac Verbindung
|
||||
filterTracTracConnections=TracTrac Verbindungen filtern
|
||||
creatorName=Name des Erstellers
|
||||
addSwissTimingAchivedConnection=SwissTimingArchived Verbindung hinzufügen
|
||||
editSwissTimingAchivedConnection=SwissTimingArchived Verbindung bearbeiten
|
||||
swissTimingAchivedConnection=SwissTimingArchived Verbindung
|
||||
filterSwissTimingAchivedConnections=SwissTimingArchived Verbindungen filtern
|
||||
editSwissTimingConnections=SwissTiming Verbindung bearbeiten
|
||||
swissTimingConnections=SwissTiming Verbindung
|
||||
filterSwissTimingConnections=SwissTiming Verbindungen filtern
|
||||
addSwissTimingConnection=SwissTiming Verbindung hinzufügen
|
||||
updateURL=Update URL
|
||||
|
||||
+1
-1
@@ -139,7 +139,7 @@ public class TracTracEventManagementPanelPO extends PageArea {
|
||||
|
||||
public AddTracTracConnectionDialogPO addConnection() {
|
||||
addConnectionButton.click();
|
||||
final WebElement dialog = findElementBySeleniumId(this.driver, "EditTracTracConnectionDialog");
|
||||
final WebElement dialog = findElementBySeleniumId(this.driver, "TracTracConnectionDialog");
|
||||
return new AddTracTracConnectionDialogPO(this.driver, dialog);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# User Management and Security
|
||||
|
||||
This document describes the basics of how the Shiro framework has been selected and is being used to implement role-based access control. See [Permission Concept](/wiki/info/security/permission-concept) to understand how, based on Shiro, a security architecture with user groups, users, qualified roles, ownerships and access control lists works.
|
||||
|
||||
As a feature of the Sports Sponsorships Engine (SSE) which underlies the SAP Sailing Analytics, our Tennis engagements, parts of the Equestrian contributions and in the future perhaps more, we are about to introduce user management to the platform. Based on [Benjamin Ebling's Bachelor thesis](/doc/theses/20140915_Ebling_Authentication_and_Authorization_for_SAP_Sailing_Analytics.pdf) we are introducing [Apache Shiro](http://shiro.apache.org) to the platform. Our Bugzilla has a separate [component for User and Account Management](http://bugzilla.sapsailing.com/bugzilla/buglist.cgi?query_format=advanced&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&component=User%20and%20Account%20Management&product=Sailing%20Race%20Analytics) that documents the open issues.
|
||||
|
||||
[[_TOC_]]
|
||||
|
||||
Reference in new issue
Block a user