Added permission to competitor's and boat's admin console tabs

This commit is contained in:
Benjamin Barth committed 2018-12-11 18:17:42 +01:00
1 parent f5ed139fb0
commit 3b695b80bd
3 files changed
+17 -18

No files matched your search

@@ -72,6 +72,9 @@ public class SecuredDomainType extends HasPermissionsImpl {
private static final Action[] ALL_ACTIONS = new Action[] { READ_PUBLIC, DefaultActions.READ,
DefaultActions.CREATE, DefaultActions.UPDATE, DefaultActions.CHANGE_OWNERSHIP,
DefaultActions.CHANGE_ACL };
public static final Action[] MUTATION_ACTIONS = new Action[] { DefaultActions.CREATE, DefaultActions.UPDATE,
DefaultActions.CHANGE_OWNERSHIP, DefaultActions.CHANGE_ACL };
};
/**
@@ -13,6 +13,7 @@ import com.google.gwt.user.client.ui.HeaderPanel;
import com.google.gwt.user.client.ui.RootLayoutPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.domain.common.security.SecuredDomainType;
import com.sap.sailing.domain.common.security.SecuredDomainType.CompetitorAndBoatActions;
import com.sap.sailing.gwt.common.authentication.FixedSailingAuthentication;
import com.sap.sailing.gwt.common.authentication.SAPSailingHeaderWithAuthentication;
import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint;
@@ -119,7 +120,9 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint
leaderboardsDisplayers = new HashSet<>();
leaderboardGroupsDisplayers = new HashSet<>();
final EventManagementPanel eventManagementPanel = new EventManagementPanel(getSailingService(), getUserService(), this, this, getStringMessages(), panel);
/* EVENTS */
final EventManagementPanel eventManagementPanel = new EventManagementPanel(getSailingService(),
getUserService(), this, this, getStringMessages(), panel);
eventManagementPanel.ensureDebugId("EventManagement");
panel.addToVerticalTabPanel(new DefaultRefreshableAdminConsolePanel<EventManagementPanel>(eventManagementPanel) {
@Override
@@ -127,11 +130,10 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint
getWidget().fillEvents();
fillLeaderboardGroups();
}
}, getStringMessages().events()); // no permissions required; we show those events the user may read
}, getStringMessages().events(), SecuredDomainType.EVENT.getPermission(DefaultActions.MUTATION_ACTIONS));
leaderboardGroupsDisplayers.add(eventManagementPanel);
/* REGATTAS */
RegattaManagementPanel regattaManagementPanel = new RegattaManagementPanel(
getSailingService(), getUserService(), this, getStringMessages(), this, eventManagementPanel);
regattaManagementPanel.ensureDebugId("RegattaStructureManagement");
@@ -140,11 +142,10 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint
public void refreshAfterBecomingVisible() {
fillRegattas();
}
}, getStringMessages().regattas(), SecuredDomainType.EVENT.getPermission(DefaultActions.MUTATION_ACTIONS));
}, getStringMessages().regattas(), SecuredDomainType.REGATTA.getPermission(DefaultActions.MUTATION_ACTIONS));
regattasDisplayers.add(regattaManagementPanel);
/* LEADERBOARDS */
final HorizontalTabLayoutPanel leaderboardTabPanel = panel.addVerticalTab(getStringMessages().leaderboards(), "LeaderboardPanel");
final LeaderboardConfigPanel leaderboardConfigPanel = new LeaderboardConfigPanel(getSailingService(), getUserService(), this, this,
getStringMessages(), /* showRaceDetails */true, this);
@@ -179,9 +180,7 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint
leaderboardsDisplayers.add(leaderboardGroupConfigPanel);
/* RACES */
final HorizontalTabLayoutPanel racesTabPanel = panel.addVerticalTab(getStringMessages().trackedRaces(), "RacesPanel");
racesTabPanel.ensureDebugId("RacesPanel");
final TrackedRacesManagementPanel trackedRacesManagementPanel = new TrackedRacesManagementPanel(
getSailingService(), getUserService(), this, this, getStringMessages());
@@ -201,7 +200,7 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint
public void refreshAfterBecomingVisible() {
getWidget().refreshCompetitorList();
}
}, getStringMessages().competitors()); // no permissions required; we show those competitors the user may read
}, getStringMessages().competitors(), SecuredDomainType.COMPETITOR.getPermission(CompetitorAndBoatActions.MUTATION_ACTIONS));
final BoatPanel boatPanel = new BoatPanel(getSailingService(), getUserService(), getStringMessages(), this);
boatPanel.ensureDebugId("BoatPanel");
@@ -210,7 +209,7 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint
public void refreshAfterBecomingVisible() {
getWidget().refreshBoatList();
}
}, getStringMessages().boats()); // no permissions required; we show those boats the user may read
}, getStringMessages().boats(), SecuredDomainType.BOAT.getPermission(CompetitorAndBoatActions.MUTATION_ACTIONS));
RaceCourseManagementPanel raceCourseManagementPanel = new RaceCourseManagementPanel(getSailingService(), this, this, getStringMessages());
panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel<RaceCourseManagementPanel>(raceCourseManagementPanel), getStringMessages().courseLayout());
@@ -231,7 +230,6 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint
}, getStringMessages().mediaPanel()); // no permissions required; we show those media the user may read
/* RACE COMMITTEE APP */
final HorizontalTabLayoutPanel raceCommitteeTabPanel = panel.addVerticalTab(getStringMessages().raceCommitteeApp(), "RaceCommiteeAppPanel");
final DeviceConfigurationUserPanel deviceConfigurationUserPanel = new DeviceConfigurationUserPanel(getSailingService(),
getUserService(), getStringMessages(), this);
@@ -239,7 +237,6 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint
getStringMessages().deviceConfiguration()); // no permissions required; we show those device configurations the user may read
/* CONNECTORS */
final HorizontalTabLayoutPanel connectorsTabPanel = panel.addVerticalTab(getStringMessages().connectors(), "TrackingProviderPanel");
TracTracEventManagementPanel tractracEventManagementPanel = new TracTracEventManagementPanel(getSailingService(),
this, this, getStringMessages());
@@ -297,9 +294,8 @@ public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint
SecuredDomainType.REGATTA.getPermission(DefaultActions.CREATE)); // TODO bug4763 provide the default CREATE ownership for REGATTA / EVENT
/* ADVANCED */
final HorizontalTabLayoutPanel advancedTabPanel = panel.addVerticalTab(getStringMessages().advanced(), "AdvancedPanel");
advancedTabPanel.ensureDebugId("AdvancedTab");
final HorizontalTabLayoutPanel advancedTabPanel = panel.addVerticalTab(getStringMessages().advanced(),
"AdvancedTab");
final ReplicationPanel replicationPanel = new ReplicationPanel(getSailingService(), this, getStringMessages());
panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel<ReplicationPanel>(replicationPanel) {
@Override
@@ -98,7 +98,7 @@ public class AdminConsolePanel extends HeaderPanel implements HandleTabSelectabl
/**
* If {@code null}, any permission will be accepted by
* {@link #remeberWidgetLocationAndPermissions(VerticalOrHorizontalTabLayoutPanel, Widget, String, HasPermissions...)}
* {@link #rememberWidgetLocationAndPermissions(VerticalOrHorizontalTabLayoutPanel, Widget, String, HasPermissions...)}
* which is used by all methods that add a panel and optionally specify permissions required to see that panel.
* If this field holds a valid permission collection, only permissions from this collection will be accepted.
* This can be used to keep a central repository of all such permissions which in turn may be used to
@@ -278,7 +278,7 @@ public class AdminConsolePanel extends HeaderPanel implements HandleTabSelectabl
AbstractEntryPoint.setTabPanelSize(newTabPanel, "100%", "100%");
newTabPanel.addSelectionHandler(tabSelectionHandler);
newTabPanel.ensureDebugId(tabDebugId);
remeberWidgetLocationAndPermissions(topLevelTabPanelWrapper, newTabPanel, tabTitle, requiresAnyOfThesePermissions);
rememberWidgetLocationAndPermissions(topLevelTabPanelWrapper, newTabPanel, tabTitle, requiresAnyOfThesePermissions);
return newTabPanel;
}
@@ -341,7 +341,7 @@ public class AdminConsolePanel extends HeaderPanel implements HandleTabSelectabl
* method can be called.
*/
private void addToTabPanel(VerticalOrHorizontalTabLayoutPanel tabPanel, RefreshableAdminConsolePanel panelToAdd, String tabTitle, WildcardPermission... requiresAnyOfThesePermissions) {
remeberWidgetLocationAndPermissions(tabPanel, wrapInScrollPanel(panelToAdd.getWidget()), tabTitle, requiresAnyOfThesePermissions);
rememberWidgetLocationAndPermissions(tabPanel, wrapInScrollPanel(panelToAdd.getWidget()), tabTitle, requiresAnyOfThesePermissions);
panelsByWidget.put(panelToAdd.getWidget(), panelToAdd);
}
@@ -356,7 +356,7 @@ public class AdminConsolePanel extends HeaderPanel implements HandleTabSelectabl
* widget. Otherwise, if any of these permissions implies any of the permissions the user has, the user
* will be shown the widget.
*/
private void remeberWidgetLocationAndPermissions(VerticalOrHorizontalTabLayoutPanel tabPanel, Widget widgetToAdd,
private void rememberWidgetLocationAndPermissions(VerticalOrHorizontalTabLayoutPanel tabPanel, Widget widgetToAdd,
String tabTitle, WildcardPermission... requiresAnyOfThesePermissions) {
if (acceptablePermissionsRequiredToSeeWidgets != null) {
for (final WildcardPermission requiredPermission : requiresAnyOfThesePermissions) {