mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 01:31:01 +00:00
Added sailing roles/permissions to suggests in AdminConsole
This commit is contained in:
1 parent
a2a190fa31
commit
466b76e882
3 files changed
+345
-322
No files matched your search
+323
-320
@@ -1,320 +1,323 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.rpc.ServiceDefTarget;
|
||||
import com.google.gwt.user.client.ui.RootLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.TabLayoutPanel;
|
||||
import com.sap.sailing.domain.common.security.Permission;
|
||||
import com.sap.sailing.domain.common.security.SailingPermissionsForRoleProvider;
|
||||
import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardGroupsDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardGroupsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.MediaService;
|
||||
import com.sap.sailing.gwt.ui.client.MediaServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||
import com.sap.sailing.gwt.ui.masterdataimport.MasterDataImportPanel;
|
||||
import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.SecurityStylesheetResources;
|
||||
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
import com.sap.sse.gwt.adminconsole.AdminConsolePanel;
|
||||
import com.sap.sse.gwt.adminconsole.DefaultRefreshableAdminConsolePanel;
|
||||
import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
import com.sap.sse.gwt.client.controls.filestorage.FileStoragePanel;
|
||||
import com.sap.sse.gwt.resources.Highcharts;
|
||||
import com.sap.sse.security.ui.client.component.UserManagementPanel;
|
||||
import com.sap.sse.security.ui.client.i18n.StringMessages;
|
||||
|
||||
public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements RegattaRefresher, LeaderboardsRefresher, LeaderboardGroupsRefresher {
|
||||
private Set<RegattasDisplayer> regattasDisplayers;
|
||||
private Set<LeaderboardsDisplayer> leaderboardsDisplayers;
|
||||
private Set<LeaderboardGroupsDisplayer> leaderboardGroupsDisplayers;
|
||||
|
||||
private final MediaServiceAsync mediaService = GWT.create(MediaService.class);
|
||||
|
||||
@Override
|
||||
protected void doOnModuleLoad() {
|
||||
Highcharts.ensureInjectedWithMore();
|
||||
super.doOnModuleLoad();
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) mediaService, RemoteServiceMappingConstants.mediaServiceRemotePath);
|
||||
createUI();
|
||||
}
|
||||
|
||||
private void createUI() {
|
||||
AdminConsolePanel panel = new AdminConsolePanel(getUserService(), SailingPermissionsForRoleProvider.INSTANCE,
|
||||
sailingService, getStringMessages().releaseNotes(), "/release_notes_admin.html", /* error reporter */ this, SecurityStylesheetResources.INSTANCE.css());
|
||||
BetterDateTimeBox.initialize();
|
||||
regattasDisplayers = new HashSet<>();
|
||||
leaderboardsDisplayers = new HashSet<>();
|
||||
leaderboardGroupsDisplayers = new HashSet<>();
|
||||
|
||||
final EventManagementPanel eventManagementPanel = new EventManagementPanel(sailingService, this, getStringMessages());
|
||||
panel.addToVerticalTabPanel(new DefaultRefreshableAdminConsolePanel<EventManagementPanel>(eventManagementPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
getWidget().fillEvents();
|
||||
fillLeaderboardGroups();
|
||||
}
|
||||
}, getStringMessages().events(), Permission.MANAGE_EVENTS);
|
||||
leaderboardGroupsDisplayers.add(eventManagementPanel);
|
||||
|
||||
RegattaManagementPanel regattaManagementPanel = new RegattaManagementPanel(
|
||||
sailingService, this, getStringMessages(), this);
|
||||
regattaManagementPanel.ensureDebugId("RegattaStructureManagement");
|
||||
panel.addToVerticalTabPanel(new DefaultRefreshableAdminConsolePanel<RegattaManagementPanel>(regattaManagementPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
fillRegattas();
|
||||
}
|
||||
}, getStringMessages().regattas(), Permission.MANAGE_REGATTAS);
|
||||
regattasDisplayers.add(regattaManagementPanel);
|
||||
|
||||
/* LEADERBOARDS */
|
||||
|
||||
final TabLayoutPanel leaderboardTabPanel = panel.addVerticalTab(getStringMessages().leaderboards(), "LeaderboardPanel");
|
||||
final LeaderboardConfigPanel leaderboardConfigPanel = new LeaderboardConfigPanel(sailingService, this, this,
|
||||
getStringMessages(), /* showRaceDetails */true, this);
|
||||
leaderboardConfigPanel.ensureDebugId("LeaderboardConfiguration");
|
||||
panel.addToTabPanel(leaderboardTabPanel, new DefaultRefreshableAdminConsolePanel<LeaderboardConfigPanel>(leaderboardConfigPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
fillLeaderboards();
|
||||
}
|
||||
}, getStringMessages().leaderboards(), Permission.MANAGE_LEADERBOARDS);
|
||||
regattasDisplayers.add(leaderboardConfigPanel);
|
||||
leaderboardsDisplayers.add(leaderboardConfigPanel);
|
||||
|
||||
final LeaderboardGroupConfigPanel leaderboardGroupConfigPanel = new LeaderboardGroupConfigPanel(sailingService,
|
||||
this, this, this, this, getStringMessages());
|
||||
leaderboardGroupConfigPanel.ensureDebugId("LeaderboardGroupConfiguration");
|
||||
panel.addToTabPanel(leaderboardTabPanel, new DefaultRefreshableAdminConsolePanel<LeaderboardGroupConfigPanel>(leaderboardGroupConfigPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
fillLeaderboards();
|
||||
fillLeaderboardGroups();
|
||||
}
|
||||
}, getStringMessages().leaderboardGroups(), Permission.MANAGE_LEADERBOARD_GROUPS);
|
||||
regattasDisplayers.add(leaderboardGroupConfigPanel);
|
||||
leaderboardGroupsDisplayers.add(leaderboardGroupConfigPanel);
|
||||
leaderboardsDisplayers.add(leaderboardGroupConfigPanel);
|
||||
|
||||
/* RACES */
|
||||
|
||||
final TabLayoutPanel racesTabPanel = panel.addVerticalTab(getStringMessages().trackedRaces(), "RacesPanel");
|
||||
racesTabPanel.ensureDebugId("RacesPanel");
|
||||
TrackedRacesManagementPanel trackedRacesManagementPanel = new TrackedRacesManagementPanel(sailingService, this,
|
||||
this, getStringMessages());
|
||||
trackedRacesManagementPanel.ensureDebugId("TrackedRacesManagement");
|
||||
panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel<TrackedRacesManagementPanel>(trackedRacesManagementPanel),
|
||||
getStringMessages().trackedRaces(), Permission.SHOW_TRACKED_RACES);
|
||||
regattasDisplayers.add(trackedRacesManagementPanel);
|
||||
|
||||
final CompetitorPanel competitorPanel = new CompetitorPanel(sailingService, getStringMessages(), this);
|
||||
competitorPanel.ensureDebugId("CompetitorPanel");
|
||||
panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel<CompetitorPanel>(competitorPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
getWidget().refreshCompetitorList();
|
||||
}
|
||||
}, getStringMessages().competitors(), Permission.MANAGE_ALL_COMPETITORS);
|
||||
|
||||
RaceCourseManagementPanel raceCourseManagementPanel = new RaceCourseManagementPanel(sailingService, this, this, getStringMessages());
|
||||
panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel<RaceCourseManagementPanel>(raceCourseManagementPanel), getStringMessages().courseLayout(), Permission.MANAGE_COURSE_LAYOUT);
|
||||
regattasDisplayers.add(raceCourseManagementPanel);
|
||||
|
||||
final AsyncActionsExecutor asyncActionsExecutor = new AsyncActionsExecutor();
|
||||
|
||||
WindPanel windPanel = new WindPanel(sailingService, asyncActionsExecutor, this, this, getStringMessages());
|
||||
panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel<WindPanel>(windPanel), getStringMessages().wind(),
|
||||
Permission.MANAGE_WIND);
|
||||
regattasDisplayers.add(windPanel);
|
||||
|
||||
final MediaPanel mediaPanel = new MediaPanel(regattasDisplayers, sailingService, this, mediaService, this, getStringMessages());
|
||||
panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel<MediaPanel>(mediaPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
getWidget().onShow();
|
||||
}
|
||||
}, getStringMessages().mediaPanel(), Permission.MANAGE_MEDIA);
|
||||
|
||||
/* RACE COMMITTEE APP */
|
||||
|
||||
final TabLayoutPanel raceCommitteeTabPanel = panel.addVerticalTab(getStringMessages().raceCommitteeApp(), "RaceCommiteeAppPanel");
|
||||
final DeviceConfigurationUserPanel deviceConfigurationUserPanel = new DeviceConfigurationUserPanel(sailingService,
|
||||
getStringMessages(), this);
|
||||
panel.addToTabPanel(raceCommitteeTabPanel, new DefaultRefreshableAdminConsolePanel<DeviceConfigurationUserPanel>(deviceConfigurationUserPanel),
|
||||
getStringMessages().deviceConfiguration(), Permission.MANAGE_DEVICE_CONFIGURATION);
|
||||
|
||||
/* CONNECTORS */
|
||||
|
||||
final TabLayoutPanel connectorsTabPanel = panel.addVerticalTab(getStringMessages().connectors(), "TrackingProviderPanel");
|
||||
TracTracEventManagementPanel tractracEventManagementPanel = new TracTracEventManagementPanel(sailingService,
|
||||
this, this, getStringMessages());
|
||||
tractracEventManagementPanel.ensureDebugId("TracTracEventManagement");
|
||||
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<TracTracEventManagementPanel>(tractracEventManagementPanel),
|
||||
getStringMessages().tracTracEvents(), Permission.MANAGE_TRACKED_RACES);
|
||||
regattasDisplayers.add(tractracEventManagementPanel);
|
||||
|
||||
SwissTimingReplayConnectorPanel swissTimingReplayConnectorPanel = new SwissTimingReplayConnectorPanel(
|
||||
sailingService, this, this, getStringMessages());
|
||||
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<SwissTimingReplayConnectorPanel>(swissTimingReplayConnectorPanel),
|
||||
getStringMessages().swissTimingArchiveConnector(), Permission.MANAGE_TRACKED_RACES);
|
||||
regattasDisplayers.add(swissTimingReplayConnectorPanel);
|
||||
|
||||
SwissTimingEventManagementPanel swisstimingEventManagementPanel = new SwissTimingEventManagementPanel(
|
||||
sailingService, this, this, getStringMessages());
|
||||
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<SwissTimingEventManagementPanel>(swisstimingEventManagementPanel),
|
||||
getStringMessages().swissTimingEvents(), Permission.MANAGE_TRACKED_RACES);
|
||||
regattasDisplayers.add(swisstimingEventManagementPanel);
|
||||
|
||||
final SmartphoneTrackingEventManagementPanel raceLogTrackingEventManagementPanel = new SmartphoneTrackingEventManagementPanel(
|
||||
sailingService, this, this, this, getStringMessages());
|
||||
raceLogTrackingEventManagementPanel.ensureDebugId("SmartphoneTrackingPanel");
|
||||
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<SmartphoneTrackingEventManagementPanel>(raceLogTrackingEventManagementPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
fillLeaderboards();
|
||||
}
|
||||
}, getStringMessages().smartphoneTracking(), Permission.MANAGE_TRACKED_RACES);
|
||||
regattasDisplayers.add(raceLogTrackingEventManagementPanel);
|
||||
leaderboardsDisplayers.add(raceLogTrackingEventManagementPanel);
|
||||
|
||||
IgtimiAccountsPanel igtimiAccountsPanel = new IgtimiAccountsPanel(sailingService, this, getStringMessages());
|
||||
igtimiAccountsPanel.ensureDebugId("IgtimiAccounts");
|
||||
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<IgtimiAccountsPanel>(igtimiAccountsPanel),
|
||||
getStringMessages().igtimiAccounts(), Permission.MANAGE_IGTIMI_ACCOUNTS);
|
||||
|
||||
ResultImportUrlsManagementPanel resultImportUrlsManagementPanel = new ResultImportUrlsManagementPanel(sailingService, this, getStringMessages());
|
||||
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<ResultImportUrlsManagementPanel>(resultImportUrlsManagementPanel),
|
||||
getStringMessages().resultImportUrls(), Permission.MANAGE_RESULT_IMPORT_URLS);
|
||||
|
||||
StructureImportManagementPanel structureImportUrlsManagementPanel = new StructureImportManagementPanel(sailingService, this, getStringMessages(), this, eventManagementPanel);
|
||||
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<StructureImportManagementPanel>(structureImportUrlsManagementPanel),
|
||||
getStringMessages().manage2Sail() + " " + getStringMessages().regattaStructureImport(), Permission.MANAGE_STRUCTURE_IMPORT_URLS);
|
||||
|
||||
/* ADVANCED */
|
||||
|
||||
final TabLayoutPanel advancedTabPanel = panel.addVerticalTab(getStringMessages().advanced(), "AdvancedPanel");
|
||||
final ReplicationPanel replicationPanel = new ReplicationPanel(sailingService, this, getStringMessages());
|
||||
panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel<ReplicationPanel>(replicationPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
replicationPanel.updateReplicaList();
|
||||
}
|
||||
}, getStringMessages().replication(), Permission.MANAGE_REPLICATION);
|
||||
|
||||
final MasterDataImportPanel masterDataImportPanel = new MasterDataImportPanel(getStringMessages(), sailingService,
|
||||
this, eventManagementPanel, this, this);
|
||||
panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel<MasterDataImportPanel>(masterDataImportPanel),
|
||||
getStringMessages().masterDataImportPanel(), Permission.MANAGE_MASTERDATA_IMPORT);
|
||||
|
||||
RemoteServerInstancesManagementPanel remoteServerInstancesManagementPanel = new RemoteServerInstancesManagementPanel(sailingService, this, getStringMessages());
|
||||
panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel<RemoteServerInstancesManagementPanel>(remoteServerInstancesManagementPanel),
|
||||
getStringMessages().remoteServerInstances(), Permission.MANAGE_SAILING_SERVER_INSTANCES);
|
||||
|
||||
LocalServerManagementPanel localServerInstancesManagementPanel = new LocalServerManagementPanel(sailingService, this, getStringMessages());
|
||||
panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel<LocalServerManagementPanel>(localServerInstancesManagementPanel),
|
||||
getStringMessages().localServer(), Permission.MANAGE_LOCAL_SERVER_INSTANCE);
|
||||
|
||||
final UserManagementPanel userManagementPanel = new UserManagementPanel(getUserService(), StringMessages.INSTANCE,
|
||||
SailingPermissionsForRoleProvider.INSTANCE);
|
||||
panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel<UserManagementPanel>(userManagementPanel),
|
||||
getStringMessages().userManagement(), Permission.MANAGE_USERS);
|
||||
|
||||
final FileStoragePanel fileStoragePanel = new FileStoragePanel(sailingService, this);
|
||||
panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel<FileStoragePanel>(fileStoragePanel),
|
||||
getStringMessages().fileStorage(), Permission.MANAGE_FILE_STORAGE);
|
||||
|
||||
panel.initUI();
|
||||
fillRegattas();
|
||||
fillLeaderboardGroups();
|
||||
fillLeaderboards();
|
||||
RootLayoutPanel rootPanel = RootLayoutPanel.get();
|
||||
rootPanel.add(panel);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillLeaderboards() {
|
||||
sailingService.getLeaderboards(new MarkedAsyncCallback<List<StrippedLeaderboardDTO>>(
|
||||
new AsyncCallback<List<StrippedLeaderboardDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(List<StrippedLeaderboardDTO> leaderboards) {
|
||||
for (LeaderboardsDisplayer leaderboardsDisplayer : leaderboardsDisplayers) {
|
||||
leaderboardsDisplayer.fillLeaderboards(leaderboards);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
reportError("Error trying to obtain list of leaderboards: "+ t.getMessage());
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateLeaderboards(Iterable<StrippedLeaderboardDTO> updatedLeaderboards, LeaderboardsDisplayer origin) {
|
||||
for (LeaderboardsDisplayer leaderboardsDisplayer : leaderboardsDisplayers) {
|
||||
if (leaderboardsDisplayer != origin) {
|
||||
leaderboardsDisplayer.fillLeaderboards(updatedLeaderboards);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillLeaderboardGroups() {
|
||||
sailingService.getLeaderboardGroups(false /*withGeoLocationData*/,
|
||||
new MarkedAsyncCallback<List<LeaderboardGroupDTO>>(
|
||||
new AsyncCallback<List<LeaderboardGroupDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(List<LeaderboardGroupDTO> groups) {
|
||||
for (LeaderboardGroupsDisplayer leaderboardGroupsDisplayer : leaderboardGroupsDisplayers) {
|
||||
leaderboardGroupsDisplayer.fillLeaderboardGroups(groups);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
reportError("Error trying to obtain list of leaderboard groups: " + t.getMessage());
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateLeaderboardGroups(Iterable<LeaderboardGroupDTO> updatedLeaderboardGroups,
|
||||
LeaderboardGroupsDisplayer origin) {
|
||||
for (LeaderboardGroupsDisplayer leaderboardGroupsDisplayer : leaderboardGroupsDisplayers) {
|
||||
if (leaderboardGroupsDisplayer != origin) {
|
||||
leaderboardGroupsDisplayer.fillLeaderboardGroups(updatedLeaderboardGroups);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillRegattas() {
|
||||
sailingService.getRegattas(new MarkedAsyncCallback<List<RegattaDTO>>(
|
||||
new AsyncCallback<List<RegattaDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(List<RegattaDTO> result) {
|
||||
for (RegattasDisplayer regattaDisplayer : regattasDisplayers) {
|
||||
regattaDisplayer.fillRegattas(result);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
reportError("Remote Procedure Call getRegattas() - Failure");
|
||||
}
|
||||
}));
|
||||
}
|
||||
}
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.rpc.ServiceDefTarget;
|
||||
import com.google.gwt.user.client.ui.RootLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.TabLayoutPanel;
|
||||
import com.sap.sailing.domain.common.security.Permission;
|
||||
import com.sap.sailing.domain.common.security.Roles;
|
||||
import com.sap.sailing.domain.common.security.SailingPermissionsForRoleProvider;
|
||||
import com.sap.sailing.gwt.ui.client.AbstractSailingEntryPoint;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardGroupsDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardGroupsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.MediaService;
|
||||
import com.sap.sailing.gwt.ui.client.MediaServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RegattasDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants;
|
||||
import com.sap.sailing.gwt.ui.masterdataimport.MasterDataImportPanel;
|
||||
import com.sap.sailing.gwt.ui.shared.BetterDateTimeBox;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.SecurityStylesheetResources;
|
||||
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
|
||||
import com.sap.sse.gwt.adminconsole.AdminConsolePanel;
|
||||
import com.sap.sse.gwt.adminconsole.DefaultRefreshableAdminConsolePanel;
|
||||
import com.sap.sse.gwt.client.EntryPointHelper;
|
||||
import com.sap.sse.gwt.client.async.AsyncActionsExecutor;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
import com.sap.sse.gwt.client.controls.filestorage.FileStoragePanel;
|
||||
import com.sap.sse.gwt.resources.Highcharts;
|
||||
import com.sap.sse.security.shared.Role;
|
||||
import com.sap.sse.security.ui.client.component.UserManagementPanel;
|
||||
import com.sap.sse.security.ui.client.i18n.StringMessages;
|
||||
|
||||
public class AdminConsoleEntryPoint extends AbstractSailingEntryPoint implements RegattaRefresher, LeaderboardsRefresher, LeaderboardGroupsRefresher {
|
||||
private Set<RegattasDisplayer> regattasDisplayers;
|
||||
private Set<LeaderboardsDisplayer> leaderboardsDisplayers;
|
||||
private Set<LeaderboardGroupsDisplayer> leaderboardGroupsDisplayers;
|
||||
|
||||
private final MediaServiceAsync mediaService = GWT.create(MediaService.class);
|
||||
|
||||
@Override
|
||||
protected void doOnModuleLoad() {
|
||||
Highcharts.ensureInjectedWithMore();
|
||||
super.doOnModuleLoad();
|
||||
EntryPointHelper.registerASyncService((ServiceDefTarget) mediaService, RemoteServiceMappingConstants.mediaServiceRemotePath);
|
||||
createUI();
|
||||
}
|
||||
|
||||
private void createUI() {
|
||||
AdminConsolePanel panel = new AdminConsolePanel(getUserService(), SailingPermissionsForRoleProvider.INSTANCE,
|
||||
sailingService, getStringMessages().releaseNotes(), "/release_notes_admin.html", /* error reporter */ this, SecurityStylesheetResources.INSTANCE.css());
|
||||
BetterDateTimeBox.initialize();
|
||||
regattasDisplayers = new HashSet<>();
|
||||
leaderboardsDisplayers = new HashSet<>();
|
||||
leaderboardGroupsDisplayers = new HashSet<>();
|
||||
|
||||
final EventManagementPanel eventManagementPanel = new EventManagementPanel(sailingService, this, getStringMessages());
|
||||
panel.addToVerticalTabPanel(new DefaultRefreshableAdminConsolePanel<EventManagementPanel>(eventManagementPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
getWidget().fillEvents();
|
||||
fillLeaderboardGroups();
|
||||
}
|
||||
}, getStringMessages().events(), Permission.MANAGE_EVENTS);
|
||||
leaderboardGroupsDisplayers.add(eventManagementPanel);
|
||||
|
||||
RegattaManagementPanel regattaManagementPanel = new RegattaManagementPanel(
|
||||
sailingService, this, getStringMessages(), this);
|
||||
regattaManagementPanel.ensureDebugId("RegattaStructureManagement");
|
||||
panel.addToVerticalTabPanel(new DefaultRefreshableAdminConsolePanel<RegattaManagementPanel>(regattaManagementPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
fillRegattas();
|
||||
}
|
||||
}, getStringMessages().regattas(), Permission.MANAGE_REGATTAS);
|
||||
regattasDisplayers.add(regattaManagementPanel);
|
||||
|
||||
/* LEADERBOARDS */
|
||||
|
||||
final TabLayoutPanel leaderboardTabPanel = panel.addVerticalTab(getStringMessages().leaderboards(), "LeaderboardPanel");
|
||||
final LeaderboardConfigPanel leaderboardConfigPanel = new LeaderboardConfigPanel(sailingService, this, this,
|
||||
getStringMessages(), /* showRaceDetails */true, this);
|
||||
leaderboardConfigPanel.ensureDebugId("LeaderboardConfiguration");
|
||||
panel.addToTabPanel(leaderboardTabPanel, new DefaultRefreshableAdminConsolePanel<LeaderboardConfigPanel>(leaderboardConfigPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
fillLeaderboards();
|
||||
}
|
||||
}, getStringMessages().leaderboards(), Permission.MANAGE_LEADERBOARDS);
|
||||
regattasDisplayers.add(leaderboardConfigPanel);
|
||||
leaderboardsDisplayers.add(leaderboardConfigPanel);
|
||||
|
||||
final LeaderboardGroupConfigPanel leaderboardGroupConfigPanel = new LeaderboardGroupConfigPanel(sailingService,
|
||||
this, this, this, this, getStringMessages());
|
||||
leaderboardGroupConfigPanel.ensureDebugId("LeaderboardGroupConfiguration");
|
||||
panel.addToTabPanel(leaderboardTabPanel, new DefaultRefreshableAdminConsolePanel<LeaderboardGroupConfigPanel>(leaderboardGroupConfigPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
fillLeaderboards();
|
||||
fillLeaderboardGroups();
|
||||
}
|
||||
}, getStringMessages().leaderboardGroups(), Permission.MANAGE_LEADERBOARD_GROUPS);
|
||||
regattasDisplayers.add(leaderboardGroupConfigPanel);
|
||||
leaderboardGroupsDisplayers.add(leaderboardGroupConfigPanel);
|
||||
leaderboardsDisplayers.add(leaderboardGroupConfigPanel);
|
||||
|
||||
/* RACES */
|
||||
|
||||
final TabLayoutPanel racesTabPanel = panel.addVerticalTab(getStringMessages().trackedRaces(), "RacesPanel");
|
||||
racesTabPanel.ensureDebugId("RacesPanel");
|
||||
TrackedRacesManagementPanel trackedRacesManagementPanel = new TrackedRacesManagementPanel(sailingService, this,
|
||||
this, getStringMessages());
|
||||
trackedRacesManagementPanel.ensureDebugId("TrackedRacesManagement");
|
||||
panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel<TrackedRacesManagementPanel>(trackedRacesManagementPanel),
|
||||
getStringMessages().trackedRaces(), Permission.SHOW_TRACKED_RACES);
|
||||
regattasDisplayers.add(trackedRacesManagementPanel);
|
||||
|
||||
final CompetitorPanel competitorPanel = new CompetitorPanel(sailingService, getStringMessages(), this);
|
||||
competitorPanel.ensureDebugId("CompetitorPanel");
|
||||
panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel<CompetitorPanel>(competitorPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
getWidget().refreshCompetitorList();
|
||||
}
|
||||
}, getStringMessages().competitors(), Permission.MANAGE_ALL_COMPETITORS);
|
||||
|
||||
RaceCourseManagementPanel raceCourseManagementPanel = new RaceCourseManagementPanel(sailingService, this, this, getStringMessages());
|
||||
panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel<RaceCourseManagementPanel>(raceCourseManagementPanel), getStringMessages().courseLayout(), Permission.MANAGE_COURSE_LAYOUT);
|
||||
regattasDisplayers.add(raceCourseManagementPanel);
|
||||
|
||||
final AsyncActionsExecutor asyncActionsExecutor = new AsyncActionsExecutor();
|
||||
|
||||
WindPanel windPanel = new WindPanel(sailingService, asyncActionsExecutor, this, this, getStringMessages());
|
||||
panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel<WindPanel>(windPanel), getStringMessages().wind(),
|
||||
Permission.MANAGE_WIND);
|
||||
regattasDisplayers.add(windPanel);
|
||||
|
||||
final MediaPanel mediaPanel = new MediaPanel(regattasDisplayers, sailingService, this, mediaService, this, getStringMessages());
|
||||
panel.addToTabPanel(racesTabPanel, new DefaultRefreshableAdminConsolePanel<MediaPanel>(mediaPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
getWidget().onShow();
|
||||
}
|
||||
}, getStringMessages().mediaPanel(), Permission.MANAGE_MEDIA);
|
||||
|
||||
/* RACE COMMITTEE APP */
|
||||
|
||||
final TabLayoutPanel raceCommitteeTabPanel = panel.addVerticalTab(getStringMessages().raceCommitteeApp(), "RaceCommiteeAppPanel");
|
||||
final DeviceConfigurationUserPanel deviceConfigurationUserPanel = new DeviceConfigurationUserPanel(sailingService,
|
||||
getStringMessages(), this);
|
||||
panel.addToTabPanel(raceCommitteeTabPanel, new DefaultRefreshableAdminConsolePanel<DeviceConfigurationUserPanel>(deviceConfigurationUserPanel),
|
||||
getStringMessages().deviceConfiguration(), Permission.MANAGE_DEVICE_CONFIGURATION);
|
||||
|
||||
/* CONNECTORS */
|
||||
|
||||
final TabLayoutPanel connectorsTabPanel = panel.addVerticalTab(getStringMessages().connectors(), "TrackingProviderPanel");
|
||||
TracTracEventManagementPanel tractracEventManagementPanel = new TracTracEventManagementPanel(sailingService,
|
||||
this, this, getStringMessages());
|
||||
tractracEventManagementPanel.ensureDebugId("TracTracEventManagement");
|
||||
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<TracTracEventManagementPanel>(tractracEventManagementPanel),
|
||||
getStringMessages().tracTracEvents(), Permission.MANAGE_TRACKED_RACES);
|
||||
regattasDisplayers.add(tractracEventManagementPanel);
|
||||
|
||||
SwissTimingReplayConnectorPanel swissTimingReplayConnectorPanel = new SwissTimingReplayConnectorPanel(
|
||||
sailingService, this, this, getStringMessages());
|
||||
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<SwissTimingReplayConnectorPanel>(swissTimingReplayConnectorPanel),
|
||||
getStringMessages().swissTimingArchiveConnector(), Permission.MANAGE_TRACKED_RACES);
|
||||
regattasDisplayers.add(swissTimingReplayConnectorPanel);
|
||||
|
||||
SwissTimingEventManagementPanel swisstimingEventManagementPanel = new SwissTimingEventManagementPanel(
|
||||
sailingService, this, this, getStringMessages());
|
||||
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<SwissTimingEventManagementPanel>(swisstimingEventManagementPanel),
|
||||
getStringMessages().swissTimingEvents(), Permission.MANAGE_TRACKED_RACES);
|
||||
regattasDisplayers.add(swisstimingEventManagementPanel);
|
||||
|
||||
final SmartphoneTrackingEventManagementPanel raceLogTrackingEventManagementPanel = new SmartphoneTrackingEventManagementPanel(
|
||||
sailingService, this, this, this, getStringMessages());
|
||||
raceLogTrackingEventManagementPanel.ensureDebugId("SmartphoneTrackingPanel");
|
||||
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<SmartphoneTrackingEventManagementPanel>(raceLogTrackingEventManagementPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
fillLeaderboards();
|
||||
}
|
||||
}, getStringMessages().smartphoneTracking(), Permission.MANAGE_TRACKED_RACES);
|
||||
regattasDisplayers.add(raceLogTrackingEventManagementPanel);
|
||||
leaderboardsDisplayers.add(raceLogTrackingEventManagementPanel);
|
||||
|
||||
IgtimiAccountsPanel igtimiAccountsPanel = new IgtimiAccountsPanel(sailingService, this, getStringMessages());
|
||||
igtimiAccountsPanel.ensureDebugId("IgtimiAccounts");
|
||||
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<IgtimiAccountsPanel>(igtimiAccountsPanel),
|
||||
getStringMessages().igtimiAccounts(), Permission.MANAGE_IGTIMI_ACCOUNTS);
|
||||
|
||||
ResultImportUrlsManagementPanel resultImportUrlsManagementPanel = new ResultImportUrlsManagementPanel(sailingService, this, getStringMessages());
|
||||
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<ResultImportUrlsManagementPanel>(resultImportUrlsManagementPanel),
|
||||
getStringMessages().resultImportUrls(), Permission.MANAGE_RESULT_IMPORT_URLS);
|
||||
|
||||
StructureImportManagementPanel structureImportUrlsManagementPanel = new StructureImportManagementPanel(sailingService, this, getStringMessages(), this, eventManagementPanel);
|
||||
panel.addToTabPanel(connectorsTabPanel, new DefaultRefreshableAdminConsolePanel<StructureImportManagementPanel>(structureImportUrlsManagementPanel),
|
||||
getStringMessages().manage2Sail() + " " + getStringMessages().regattaStructureImport(), Permission.MANAGE_STRUCTURE_IMPORT_URLS);
|
||||
|
||||
/* ADVANCED */
|
||||
|
||||
final TabLayoutPanel advancedTabPanel = panel.addVerticalTab(getStringMessages().advanced(), "AdvancedPanel");
|
||||
final ReplicationPanel replicationPanel = new ReplicationPanel(sailingService, this, getStringMessages());
|
||||
panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel<ReplicationPanel>(replicationPanel) {
|
||||
@Override
|
||||
public void refreshAfterBecomingVisible() {
|
||||
replicationPanel.updateReplicaList();
|
||||
}
|
||||
}, getStringMessages().replication(), Permission.MANAGE_REPLICATION);
|
||||
|
||||
final MasterDataImportPanel masterDataImportPanel = new MasterDataImportPanel(getStringMessages(), sailingService,
|
||||
this, eventManagementPanel, this, this);
|
||||
panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel<MasterDataImportPanel>(masterDataImportPanel),
|
||||
getStringMessages().masterDataImportPanel(), Permission.MANAGE_MASTERDATA_IMPORT);
|
||||
|
||||
RemoteServerInstancesManagementPanel remoteServerInstancesManagementPanel = new RemoteServerInstancesManagementPanel(sailingService, this, getStringMessages());
|
||||
panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel<RemoteServerInstancesManagementPanel>(remoteServerInstancesManagementPanel),
|
||||
getStringMessages().remoteServerInstances(), Permission.MANAGE_SAILING_SERVER_INSTANCES);
|
||||
|
||||
LocalServerManagementPanel localServerInstancesManagementPanel = new LocalServerManagementPanel(sailingService, this, getStringMessages());
|
||||
panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel<LocalServerManagementPanel>(localServerInstancesManagementPanel),
|
||||
getStringMessages().localServer(), Permission.MANAGE_LOCAL_SERVER_INSTANCE);
|
||||
|
||||
final UserManagementPanel userManagementPanel = new UserManagementPanel(getUserService(), StringMessages.INSTANCE,
|
||||
SailingPermissionsForRoleProvider.INSTANCE, Arrays.<Role>asList(Roles.values()), Arrays.<com.sap.sse.security.shared.Permission>asList(Permission.values()));
|
||||
panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel<UserManagementPanel>(userManagementPanel),
|
||||
getStringMessages().userManagement(), Permission.MANAGE_USERS);
|
||||
|
||||
final FileStoragePanel fileStoragePanel = new FileStoragePanel(sailingService, this);
|
||||
panel.addToTabPanel(advancedTabPanel, new DefaultRefreshableAdminConsolePanel<FileStoragePanel>(fileStoragePanel),
|
||||
getStringMessages().fileStorage(), Permission.MANAGE_FILE_STORAGE);
|
||||
|
||||
panel.initUI();
|
||||
fillRegattas();
|
||||
fillLeaderboardGroups();
|
||||
fillLeaderboards();
|
||||
RootLayoutPanel rootPanel = RootLayoutPanel.get();
|
||||
rootPanel.add(panel);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillLeaderboards() {
|
||||
sailingService.getLeaderboards(new MarkedAsyncCallback<List<StrippedLeaderboardDTO>>(
|
||||
new AsyncCallback<List<StrippedLeaderboardDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(List<StrippedLeaderboardDTO> leaderboards) {
|
||||
for (LeaderboardsDisplayer leaderboardsDisplayer : leaderboardsDisplayers) {
|
||||
leaderboardsDisplayer.fillLeaderboards(leaderboards);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
reportError("Error trying to obtain list of leaderboards: "+ t.getMessage());
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateLeaderboards(Iterable<StrippedLeaderboardDTO> updatedLeaderboards, LeaderboardsDisplayer origin) {
|
||||
for (LeaderboardsDisplayer leaderboardsDisplayer : leaderboardsDisplayers) {
|
||||
if (leaderboardsDisplayer != origin) {
|
||||
leaderboardsDisplayer.fillLeaderboards(updatedLeaderboards);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillLeaderboardGroups() {
|
||||
sailingService.getLeaderboardGroups(false /*withGeoLocationData*/,
|
||||
new MarkedAsyncCallback<List<LeaderboardGroupDTO>>(
|
||||
new AsyncCallback<List<LeaderboardGroupDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(List<LeaderboardGroupDTO> groups) {
|
||||
for (LeaderboardGroupsDisplayer leaderboardGroupsDisplayer : leaderboardGroupsDisplayers) {
|
||||
leaderboardGroupsDisplayer.fillLeaderboardGroups(groups);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
reportError("Error trying to obtain list of leaderboard groups: " + t.getMessage());
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateLeaderboardGroups(Iterable<LeaderboardGroupDTO> updatedLeaderboardGroups,
|
||||
LeaderboardGroupsDisplayer origin) {
|
||||
for (LeaderboardGroupsDisplayer leaderboardGroupsDisplayer : leaderboardGroupsDisplayers) {
|
||||
if (leaderboardGroupsDisplayer != origin) {
|
||||
leaderboardGroupsDisplayer.fillLeaderboardGroups(updatedLeaderboardGroups);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillRegattas() {
|
||||
sailingService.getRegattas(new MarkedAsyncCallback<List<RegattaDTO>>(
|
||||
new AsyncCallback<List<RegattaDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(List<RegattaDTO> result) {
|
||||
for (RegattasDisplayer regattaDisplayer : regattasDisplayers) {
|
||||
regattaDisplayer.fillRegattas(result);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
reportError("Remote Procedure Call getRegattas() - Failure");
|
||||
}
|
||||
}));
|
||||
}
|
||||
}
|
||||
+11
-1
@@ -29,7 +29,9 @@ import com.sap.sse.gwt.client.controls.listedit.StringListEditorComposite;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
import com.sap.sse.security.shared.DefaultPermissions;
|
||||
import com.sap.sse.security.shared.DefaultRoles;
|
||||
import com.sap.sse.security.shared.Permission;
|
||||
import com.sap.sse.security.shared.PermissionsForRoleProvider;
|
||||
import com.sap.sse.security.shared.Role;
|
||||
import com.sap.sse.security.shared.UserManagementException;
|
||||
import com.sap.sse.security.ui.client.IconResources;
|
||||
import com.sap.sse.security.ui.client.UserChangeEventHandler;
|
||||
@@ -58,7 +60,9 @@ public class UserDetailsView extends FlowPanel {
|
||||
|
||||
private final PermissionsForRoleProvider permissionForRoleProvider;
|
||||
|
||||
public UserDetailsView(final UserService userService, UserDTO user, final StringMessages stringMessages, final UserListDataProvider userListDataProvider, PermissionsForRoleProvider permissionsForRoleProvider) {
|
||||
public UserDetailsView(final UserService userService, UserDTO user, final StringMessages stringMessages,
|
||||
final UserListDataProvider userListDataProvider, PermissionsForRoleProvider permissionsForRoleProvider,
|
||||
Iterable<Role> additionalRoles, Iterable<Permission> additionalPermissions) {
|
||||
final UserManagementServiceAsync userManagementService = userService.getUserManagementService();
|
||||
this.stringMessages = stringMessages;
|
||||
this.permissionForRoleProvider = permissionsForRoleProvider;
|
||||
@@ -68,10 +72,16 @@ public class UserDetailsView extends FlowPanel {
|
||||
for (DefaultRoles defaultRole : DefaultRoles.values()) {
|
||||
defaultRoleNames.add(defaultRole.getRolename());
|
||||
}
|
||||
for (Role role : additionalRoles) {
|
||||
defaultRoleNames.add(role.getRolename());
|
||||
}
|
||||
List<String> defaultPermissionNames = new ArrayList<>();
|
||||
for (DefaultPermissions defaultPermission : DefaultPermissions.values()) {
|
||||
defaultPermissionNames.add(defaultPermission.getStringPermission());
|
||||
}
|
||||
for (Permission permission : additionalPermissions) {
|
||||
defaultPermissionNames.add(permission.getStringPermission());
|
||||
}
|
||||
rolesEditor = new StringListEditorComposite(user==null?Collections.<String>emptySet():user.getRoles(), stringMessages, com.sap.sse.gwt.client.IconResources.INSTANCE.removeIcon(), defaultRoleNames,
|
||||
stringMessages.enterRoleName());
|
||||
rolesEditor.addValueChangeHandler(new ValueChangeHandler<Iterable<String>>() {
|
||||
|
||||
+11
-1
@@ -1,6 +1,7 @@
|
||||
package com.sap.sse.security.ui.client.component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.event.dom.client.ChangeEvent;
|
||||
@@ -23,7 +24,9 @@ import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
|
||||
import com.google.gwt.view.client.SingleSelectionModel;
|
||||
import com.sap.sse.security.shared.Permission;
|
||||
import com.sap.sse.security.shared.PermissionsForRoleProvider;
|
||||
import com.sap.sse.security.shared.Role;
|
||||
import com.sap.sse.security.ui.client.UserChangeEventHandler;
|
||||
import com.sap.sse.security.ui.client.UserManagementServiceAsync;
|
||||
import com.sap.sse.security.ui.client.UserService;
|
||||
@@ -42,6 +45,11 @@ public class UserManagementPanel extends DockPanel {
|
||||
private UserListDataProvider userListDataProvider;
|
||||
|
||||
public UserManagementPanel(final UserService userService, final StringMessages stringMessages, PermissionsForRoleProvider permissionsForRoleProvider) {
|
||||
this(userService, stringMessages, permissionsForRoleProvider, Collections.<Role>emptySet(), Collections.<Permission>emptySet());
|
||||
}
|
||||
|
||||
public UserManagementPanel(final UserService userService, final StringMessages stringMessages, PermissionsForRoleProvider permissionsForRoleProvider,
|
||||
Iterable<Role> additionalRoles, Iterable<Permission> additionalPermissions) {
|
||||
final UserManagementServiceAsync userManagementService = userService.getUserManagementService();
|
||||
VerticalPanel west = new VerticalPanel();
|
||||
HorizontalPanel buttonPanel = new HorizontalPanel();
|
||||
@@ -89,7 +97,9 @@ public class UserManagementPanel extends DockPanel {
|
||||
userList.setSelectionModel(singleSelectionModel);
|
||||
TextBox filterBox = new TextBox();
|
||||
userListDataProvider = new UserListDataProvider(userManagementService, filterBox);
|
||||
final UserDetailsView userDetailsView = new UserDetailsView(userService, singleSelectionModel.getSelectedObject(), stringMessages, userListDataProvider, permissionsForRoleProvider);
|
||||
final UserDetailsView userDetailsView = new UserDetailsView(userService,
|
||||
singleSelectionModel.getSelectedObject(), stringMessages, userListDataProvider,
|
||||
permissionsForRoleProvider, additionalRoles, additionalPermissions);
|
||||
add(userDetailsView, DockPanel.CENTER);
|
||||
userDetailsView.addUserChangeEventHandler(new UserChangeEventHandler() {
|
||||
@Override
|
||||
|
||||
Reference in new issue
Block a user