diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingEventManagementPanel.java index 5630453be38..4a16e3ba427 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingEventManagementPanel.java @@ -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() { @Override public void ok(SwissTimingConfigurationWithSecurityDTO editedConnection) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingReplayConnectorPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingReplayConnectorPanel.java index da50f66ad5d..38b211c838c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingReplayConnectorPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SwissTimingReplayConnectorPanel.java @@ -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() { @Override public void ok(SwissTimingArchiveConfigurationWithSecurityDTO editedConnection) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java index 52683733937..c4a46650b01 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java @@ -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() { @Override public void ok(TracTracConfigurationWithSecurityDTO editedConnection) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/EditSwissTimingArchivedConnectionDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingArchivedConnectionDialog.java similarity index 66% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/EditSwissTimingArchivedConnectionDialog.java rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingArchivedConnectionDialog.java index 35fd9312e31..28ee34e59b7 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/EditSwissTimingArchivedConnectionDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingArchivedConnectionDialog.java @@ -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 { 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 { @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 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 diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingArchivedConnectionEditDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingArchivedConnectionEditDialog.java new file mode 100644 index 00000000000..1b1bc8e7d14 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingArchivedConnectionEditDialog.java @@ -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 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(); + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingArchivedConnectionTableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingArchivedConnectionTableWrapper.java index e8c796756df..5230ac8ee61 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingArchivedConnectionTableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingArchivedConnectionTableWrapper.java @@ -73,7 +73,7 @@ public class SwissTimingArchivedConnectionTableWrapper extends final AccessControlledActionsColumn actionColumn = create( new DefaultActionsImagesBarCell(stringMessages), userService); actionColumn.addAction(DefaultActionsImagesBarCell.ACTION_UPDATE, DefaultActions.UPDATE, dto -> { - new EditSwissTimingArchivedConnectionDialog(dto, + new SwissTimingArchivedConnectionEditDialog(dto, new DialogCallback() { @Override public void ok(final SwissTimingArchiveConfigurationWithSecurityDTO editedObject) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/EditSwissTimingConnectionDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingConnectionDialog.java similarity index 75% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/EditSwissTimingConnectionDialog.java rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingConnectionDialog.java index f56421d5a2e..7aa7ac48625 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/EditSwissTimingConnectionDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingConnectionDialog.java @@ -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 { +public class SwissTimingConnectionDialog extends DataEntryDialog { 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 { @Override @@ -45,31 +47,14 @@ public class EditSwissTimingConnectionDialog extends DataEntryDialog 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 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 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(); + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingConnectionTableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingConnectionTableWrapper.java index 3c53f54d336..5d8f9fe8f23 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingConnectionTableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/swisstiming/SwissTimingConnectionTableWrapper.java @@ -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, StringMessages, CellTableWithCheckboxResources> { @@ -88,7 +88,7 @@ public class SwissTimingConnectionTableWrapper extends final AccessControlledActionsColumn actionColumn = create( new DefaultActionsImagesBarCell(stringMessages), userService); actionColumn.addAction(DefaultActionsImagesBarCell.ACTION_UPDATE, DefaultActions.UPDATE, dto -> { - new EditSwissTimingConnectionDialog(dto, new DialogCallback() { + new SwissTimingConnectionEditDialog(dto, new DialogCallback() { @Override public void ok(final SwissTimingConfigurationWithSecurityDTO editedObject) { sailingServiceAsync.updateSwissTimingConfiguration(editedObject, diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/tractrac/EditTracTracConnectionDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/tractrac/TracTracConnectionDialog.java similarity index 70% rename from java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/tractrac/EditTracTracConnectionDialog.java rename to java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/tractrac/TracTracConnectionDialog.java index a6f5c45ff15..aaa0681c9d5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/tractrac/EditTracTracConnectionDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/tractrac/TracTracConnectionDialog.java @@ -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 { +public class TracTracConnectionDialog extends DataEntryDialog { 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 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 super.getOkButton().setEnabled(!jsonURLTextBox.getText().isEmpty())); grid.setWidget(3, 0, jsonURLLabel); @@ -119,8 +106,8 @@ public class EditTracTracConnectionDialog extends DataEntryDialog 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()); + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/tractrac/TracTracConnectionTableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/tractrac/TracTracConnectionTableWrapper.java index 8129409c40b..26781d39d13 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/tractrac/TracTracConnectionTableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/tractrac/TracTracConnectionTableWrapper.java @@ -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, StringMessages, CellTableWithCheckboxResources> { @@ -86,7 +86,7 @@ public class TracTracConnectionTableWrapper extends final AccessControlledActionsColumn actionColumn = create( new DefaultActionsImagesBarCell(stringMessages), userService); actionColumn.addAction(DefaultActionsImagesBarCell.ACTION_UPDATE, DefaultActions.UPDATE, dto -> { - new EditTracTracConnectionDialog(dto, new DialogCallback() { + new TracTracConnectionEditDialog(dto, new DialogCallback() { @Override public void ok(final TracTracConfigurationWithSecurityDTO editedObject) { sailingServiceAsync.updateTracTracConfiguration(editedObject, diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index e2ac3c978ad..cc0452168f6 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -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(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index 430324c30dd..28d3feebd05 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -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 diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index e941467a884..b688e4c814c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -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 diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/tractrac/TracTracEventManagementPanelPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/tractrac/TracTracEventManagementPanelPO.java index fc2214cee2a..ff8f9e20c0a 100644 --- a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/tractrac/TracTracEventManagementPanelPO.java +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/adminconsole/tractrac/TracTracEventManagementPanelPO.java @@ -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); } diff --git a/wiki/info/landscape/usermanagement.md b/wiki/info/landscape/usermanagement.md index cb75453cbef..8896293769f 100644 --- a/wiki/info/landscape/usermanagement.md +++ b/wiki/info/landscape/usermanagement.md @@ -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_]]