Merge remote-tracking branch 'server/master'

This commit is contained in:
Axel Uhl committed 2020-01-23 11:28:31 +01:00
commit 0be0e26e73
17 files changed
+179 -111

No files matched your search

@@ -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) {
@@ -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) {
@@ -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) {
@@ -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
@@ -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();
}
}
@@ -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) {
@@ -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
@@ -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();
}
}
@@ -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,
@@ -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
@@ -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());
}
}
@@ -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,
@@ -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();
@@ -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
@@ -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
@@ -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);
}
+2
View File
@@ -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_]]