Deployment View broken with Access Denied error (#841)
* Use SystemSecurityContext:runAsSystem to fix AccessDeniedException Signed-off-by: Stefan Behl <stefan.behl@bosch-si.com>
This commit is contained in:
committed by
Jeroen Laverman
parent
1ac40a7a95
commit
b50515367e
@@ -14,6 +14,7 @@ import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
||||
import org.eclipse.hawkbit.repository.DistributionSetTagManagement;
|
||||
import org.eclipse.hawkbit.repository.TenantConfigurationManagement;
|
||||
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
||||
import org.eclipse.hawkbit.security.SystemSecurityContext;
|
||||
import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationProperties.TenantConfigurationKey;
|
||||
import org.eclipse.hawkbit.ui.SpPermissionChecker;
|
||||
import org.eclipse.hawkbit.ui.common.tagdetails.DistributionTagToken;
|
||||
@@ -44,21 +45,16 @@ public abstract class AbstractDistributionSetDetails
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private final DistributionAddUpdateWindowLayout distributionAddUpdateWindowLayout;
|
||||
|
||||
private final DistributionSetMetadataDetailsLayout dsMetadataTable;
|
||||
|
||||
private final UINotification uiNotification;
|
||||
|
||||
private final transient DistributionSetManagement distributionSetManagement;
|
||||
|
||||
private final DsMetadataPopupLayout dsMetadataPopupLayout;
|
||||
|
||||
private final DistributionTagToken distributionTagToken;
|
||||
|
||||
private final SoftwareModuleDetailsTable softwareModuleDetailsTable;
|
||||
|
||||
private final transient TenantConfigurationManagement tenantConfigurationManagement;
|
||||
private final transient SystemSecurityContext systemSecurityContext;
|
||||
|
||||
private final DistributionAddUpdateWindowLayout distributionAddUpdateWindowLayout;
|
||||
private final DistributionSetMetadataDetailsLayout dsMetadataTable;
|
||||
private final UINotification uiNotification;
|
||||
private final DsMetadataPopupLayout dsMetadataPopupLayout;
|
||||
private final DistributionTagToken distributionTagToken;
|
||||
private final SoftwareModuleDetailsTable softwareModuleDetailsTable;
|
||||
|
||||
private VerticalLayout softwareModuleTab;
|
||||
|
||||
@@ -69,7 +65,8 @@ public abstract class AbstractDistributionSetDetails
|
||||
final DsMetadataPopupLayout dsMetadataPopupLayout, final UINotification uiNotification,
|
||||
final DistributionSetTagManagement distributionSetTagManagement,
|
||||
final SoftwareModuleDetailsTable softwareModuleDetailsTable,
|
||||
final TenantConfigurationManagement tenantConfigurationManagement) {
|
||||
final TenantConfigurationManagement tenantConfigurationManagement,
|
||||
final SystemSecurityContext systemSecurityContext) {
|
||||
super(i18n, eventBus, permissionChecker, managementUIState);
|
||||
this.distributionAddUpdateWindowLayout = distributionAddUpdateWindowLayout;
|
||||
this.uiNotification = uiNotification;
|
||||
@@ -79,6 +76,7 @@ public abstract class AbstractDistributionSetDetails
|
||||
managementUIState, distributionSetTagManagement, distributionSetManagement);
|
||||
this.softwareModuleDetailsTable = softwareModuleDetailsTable;
|
||||
this.tenantConfigurationManagement = tenantConfigurationManagement;
|
||||
this.systemSecurityContext = systemSecurityContext;
|
||||
|
||||
dsMetadataTable = new DistributionSetMetadataDetailsLayout(i18n, distributionSetManagement,
|
||||
dsMetadataPopupLayout);
|
||||
@@ -192,8 +190,8 @@ public abstract class AbstractDistributionSetDetails
|
||||
}
|
||||
|
||||
private boolean isMultiAssignmentEnabled() {
|
||||
return tenantConfigurationManagement
|
||||
.getConfigurationValue(TenantConfigurationKey.MULTI_ASSIGNMENTS_ENABLED, Boolean.class).getValue();
|
||||
return systemSecurityContext.runAsSystem(() -> tenantConfigurationManagement
|
||||
.getConfigurationValue(TenantConfigurationKey.MULTI_ASSIGNMENTS_ENABLED, Boolean.class).getValue());
|
||||
}
|
||||
|
||||
private String getMigrationRequiredValue(final Boolean isMigrationRequired) {
|
||||
|
||||
@@ -22,6 +22,7 @@ import org.eclipse.hawkbit.repository.SoftwareModuleTypeManagement;
|
||||
import org.eclipse.hawkbit.repository.SystemManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetManagement;
|
||||
import org.eclipse.hawkbit.repository.TenantConfigurationManagement;
|
||||
import org.eclipse.hawkbit.security.SystemSecurityContext;
|
||||
import org.eclipse.hawkbit.ui.AbstractHawkbitUI;
|
||||
import org.eclipse.hawkbit.ui.SpPermissionChecker;
|
||||
import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent;
|
||||
@@ -104,7 +105,7 @@ public class DistributionsView extends AbstractNotificationView implements Brows
|
||||
final ArtifactUploadState artifactUploadState, final SystemManagement systemManagement,
|
||||
final ArtifactManagement artifactManagement, final NotificationUnreadButton notificationUnreadButton,
|
||||
final DistributionsViewMenuItem distributionsViewMenuItem,
|
||||
final TenantConfigurationManagement configManagement) {
|
||||
final TenantConfigurationManagement configManagement, final SystemSecurityContext systemSecurityContext) {
|
||||
super(eventBus, notificationUnreadButton);
|
||||
this.permChecker = permChecker;
|
||||
this.i18n = i18n;
|
||||
@@ -119,7 +120,7 @@ public class DistributionsView extends AbstractNotificationView implements Brows
|
||||
this.distributionTableLayout = new DistributionSetTableLayout(i18n, eventBus, permChecker, manageDistUIState,
|
||||
softwareModuleManagement, distributionSetManagement, distributionSetTypeManagement, targetManagement,
|
||||
entityFactory, uiNotification, distributionSetTagManagement, distributionsViewClientCriterion,
|
||||
systemManagement, configManagement);
|
||||
systemManagement, configManagement, systemSecurityContext);
|
||||
this.softwareModuleTableLayout = new SwModuleTableLayout(i18n, uiNotification, eventBus,
|
||||
softwareModuleManagement, softwareModuleTypeManagement, entityFactory, manageDistUIState, permChecker,
|
||||
distributionsViewClientCriterion, artifactUploadState, artifactManagement);
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
||||
import org.eclipse.hawkbit.repository.DistributionSetTagManagement;
|
||||
import org.eclipse.hawkbit.repository.TenantConfigurationManagement;
|
||||
import org.eclipse.hawkbit.repository.model.SoftwareModule;
|
||||
import org.eclipse.hawkbit.security.SystemSecurityContext;
|
||||
import org.eclipse.hawkbit.ui.SpPermissionChecker;
|
||||
import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent;
|
||||
import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent.SoftwareModuleEventType;
|
||||
@@ -59,12 +60,13 @@ public class DistributionSetDetails extends AbstractDistributionSetDetails {
|
||||
final DistributionAddUpdateWindowLayout distributionAddUpdateWindowLayout,
|
||||
final DistributionSetManagement distributionSetManagement, final UINotification uiNotification,
|
||||
final DistributionSetTagManagement distributionSetTagManagement,
|
||||
final DsMetadataPopupLayout dsMetadataPopupLayout, final TenantConfigurationManagement configManagement) {
|
||||
final DsMetadataPopupLayout dsMetadataPopupLayout, final TenantConfigurationManagement configManagement,
|
||||
final SystemSecurityContext systemSecurityContext) {
|
||||
super(i18n, eventBus, permissionChecker, managementUIState, distributionAddUpdateWindowLayout,
|
||||
distributionSetManagement, dsMetadataPopupLayout, uiNotification, distributionSetTagManagement,
|
||||
createSoftwareModuleDetailsTable(i18n, permissionChecker, distributionSetManagement, eventBus,
|
||||
manageDistUIState, uiNotification),
|
||||
configManagement);
|
||||
configManagement, systemSecurityContext);
|
||||
this.manageDistUIState = manageDistUIState;
|
||||
|
||||
tfqDetailsTable = new TargetFilterQueryDetailsTable(i18n);
|
||||
|
||||
@@ -16,6 +16,7 @@ import org.eclipse.hawkbit.repository.SoftwareModuleManagement;
|
||||
import org.eclipse.hawkbit.repository.SystemManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetManagement;
|
||||
import org.eclipse.hawkbit.repository.TenantConfigurationManagement;
|
||||
import org.eclipse.hawkbit.security.SystemSecurityContext;
|
||||
import org.eclipse.hawkbit.ui.SpPermissionChecker;
|
||||
import org.eclipse.hawkbit.ui.common.table.AbstractTableLayout;
|
||||
import org.eclipse.hawkbit.ui.dd.criteria.DistributionsViewClientCriterion;
|
||||
@@ -42,7 +43,8 @@ public class DistributionSetTableLayout extends AbstractTableLayout<Distribution
|
||||
final EntityFactory entityFactory, final UINotification uiNotification,
|
||||
final DistributionSetTagManagement distributionSetTagManagement,
|
||||
final DistributionsViewClientCriterion distributionsViewClientCriterion,
|
||||
final SystemManagement systemManagement, final TenantConfigurationManagement configManagement) {
|
||||
final SystemManagement systemManagement, final TenantConfigurationManagement configManagement,
|
||||
final SystemSecurityContext systemSecurityContext) {
|
||||
|
||||
this.distributionSetTable = new DistributionSetTable(eventBus, i18n, uiNotification, permissionChecker,
|
||||
manageDistUIState, distributionSetManagement, softwareManagement, distributionsViewClientCriterion,
|
||||
@@ -50,7 +52,7 @@ public class DistributionSetTableLayout extends AbstractTableLayout<Distribution
|
||||
|
||||
final DistributionAddUpdateWindowLayout distributionAddUpdateWindowLayout = new DistributionAddUpdateWindowLayout(
|
||||
i18n, uiNotification, eventBus, distributionSetManagement, distributionSetTypeManagement,
|
||||
systemManagement, entityFactory, distributionSetTable, configManagement);
|
||||
systemManagement, entityFactory, distributionSetTable, configManagement, systemSecurityContext);
|
||||
|
||||
final DsMetadataPopupLayout popupLayout = new DsMetadataPopupLayout(i18n, uiNotification, eventBus,
|
||||
distributionSetManagement, entityFactory, permissionChecker);
|
||||
@@ -61,7 +63,7 @@ public class DistributionSetTableLayout extends AbstractTableLayout<Distribution
|
||||
distributionSetTable,
|
||||
new DistributionSetDetails(i18n, eventBus, permissionChecker, manageDistUIState, null,
|
||||
distributionAddUpdateWindowLayout, distributionSetManagement, uiNotification,
|
||||
distributionSetTagManagement, popupLayout, configManagement));
|
||||
distributionSetTagManagement, popupLayout, configManagement, systemSecurityContext));
|
||||
}
|
||||
|
||||
public DistributionSetTable getDistributionSetTable() {
|
||||
|
||||
@@ -23,6 +23,7 @@ import org.eclipse.hawkbit.repository.TargetFilterQueryManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetTagManagement;
|
||||
import org.eclipse.hawkbit.repository.TenantConfigurationManagement;
|
||||
import org.eclipse.hawkbit.security.SystemSecurityContext;
|
||||
import org.eclipse.hawkbit.ui.AbstractHawkbitUI;
|
||||
import org.eclipse.hawkbit.ui.SpPermissionChecker;
|
||||
import org.eclipse.hawkbit.ui.UiProperties;
|
||||
@@ -128,7 +129,7 @@ public class DeploymentView extends AbstractNotificationView implements BrowserW
|
||||
final TargetTagManagement targetTagManagement,
|
||||
final DistributionSetTagManagement distributionSetTagManagement,
|
||||
final TargetFilterQueryManagement targetFilterQueryManagement, final SystemManagement systemManagement,
|
||||
final TenantConfigurationManagement configManagement,
|
||||
final TenantConfigurationManagement configManagement, final SystemSecurityContext systemSecurityContext,
|
||||
final NotificationUnreadButton notificationUnreadButton,
|
||||
final DeploymentViewMenuItem deploymentViewMenuItem, @Qualifier("uiExecutor") final Executor uiExecutor) {
|
||||
super(eventBus, notificationUnreadButton);
|
||||
@@ -149,7 +150,7 @@ public class DeploymentView extends AbstractNotificationView implements BrowserW
|
||||
targetFilterQueryManagement, targetTagManagement);
|
||||
final TargetTable targetTable = new TargetTable(eventBus, i18n, uiNotification, targetManagement,
|
||||
managementUIState, permChecker, managementViewClientCriterion, distributionSetManagement,
|
||||
targetTagManagement, deploymentManagement, configManagement, uiProperties);
|
||||
targetTagManagement, deploymentManagement, configManagement, systemSecurityContext, uiProperties);
|
||||
this.countMessageLabel = new CountMessageLabel(eventBus, targetManagement, i18n, managementUIState,
|
||||
targetTable);
|
||||
|
||||
@@ -177,7 +178,7 @@ public class DeploymentView extends AbstractNotificationView implements BrowserW
|
||||
this.distributionTableLayout = new DistributionTableLayout(i18n, eventBus, permChecker, managementUIState,
|
||||
distributionSetManagement, distributionSetTypeManagement, managementViewClientCriterion,
|
||||
entityFactory, uiNotification, distributionSetTagManagement, targetTagManagement, systemManagement,
|
||||
targetManagement, deploymentManagement, configManagement, uiProperties);
|
||||
targetManagement, deploymentManagement, configManagement, systemSecurityContext, uiProperties);
|
||||
} else {
|
||||
this.distributionTagLayout = null;
|
||||
this.distributionTableLayout = null;
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.eclipse.hawkbit.repository.exception.EntityNotFoundException;
|
||||
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
||||
import org.eclipse.hawkbit.repository.model.DistributionSetType;
|
||||
import org.eclipse.hawkbit.repository.model.TenantMetaData;
|
||||
import org.eclipse.hawkbit.security.SystemSecurityContext;
|
||||
import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationProperties.TenantConfigurationKey;
|
||||
import org.eclipse.hawkbit.ui.common.CommonDialogWindow;
|
||||
import org.eclipse.hawkbit.ui.common.CommonDialogWindow.SaveDialogCloseListener;
|
||||
@@ -67,6 +68,7 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
||||
private final transient SystemManagement systemManagement;
|
||||
private final transient EntityFactory entityFactory;
|
||||
private final transient TenantConfigurationManagement tenantConfigurationManagement;
|
||||
private final transient SystemSecurityContext systemSecurityContext;
|
||||
|
||||
private final DistributionSetTable distributionSetTable;
|
||||
|
||||
@@ -104,7 +106,8 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
||||
final UIEventBus eventBus, final DistributionSetManagement distributionSetManagement,
|
||||
final DistributionSetTypeManagement distributionSetTypeManagement, final SystemManagement systemManagement,
|
||||
final EntityFactory entityFactory, final DistributionSetTable distributionSetTable,
|
||||
final TenantConfigurationManagement tenantConfigurationManagement) {
|
||||
final TenantConfigurationManagement tenantConfigurationManagement,
|
||||
final SystemSecurityContext systemSecurityContext) {
|
||||
this.i18n = i18n;
|
||||
this.notificationMessage = notificationMessage;
|
||||
this.eventBus = eventBus;
|
||||
@@ -114,6 +117,7 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
||||
this.entityFactory = entityFactory;
|
||||
this.distributionSetTable = distributionSetTable;
|
||||
this.tenantConfigurationManagement = tenantConfigurationManagement;
|
||||
this.systemSecurityContext = systemSecurityContext;
|
||||
createRequiredComponents();
|
||||
buildLayout();
|
||||
}
|
||||
@@ -294,8 +298,8 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
|
||||
}
|
||||
|
||||
private boolean isMultiAssignmentEnabled() {
|
||||
return tenantConfigurationManagement.getConfigurationValue(TenantConfigurationKey.MULTI_ASSIGNMENTS_ENABLED,
|
||||
Boolean.class).getValue();
|
||||
return systemSecurityContext.runAsSystem(() -> tenantConfigurationManagement
|
||||
.getConfigurationValue(TenantConfigurationKey.MULTI_ASSIGNMENTS_ENABLED, Boolean.class).getValue());
|
||||
}
|
||||
|
||||
private void populateValuesOfDistribution(final Long editDistId) {
|
||||
|
||||
@@ -11,6 +11,7 @@ package org.eclipse.hawkbit.ui.management.dstable;
|
||||
import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
||||
import org.eclipse.hawkbit.repository.DistributionSetTagManagement;
|
||||
import org.eclipse.hawkbit.repository.TenantConfigurationManagement;
|
||||
import org.eclipse.hawkbit.security.SystemSecurityContext;
|
||||
import org.eclipse.hawkbit.ui.SpPermissionChecker;
|
||||
import org.eclipse.hawkbit.ui.common.detailslayout.AbstractDistributionSetDetails;
|
||||
import org.eclipse.hawkbit.ui.common.detailslayout.SoftwareModuleDetailsTable;
|
||||
@@ -33,11 +34,12 @@ public class DistributionDetails extends AbstractDistributionSetDetails {
|
||||
final DsMetadataPopupLayout dsMetadataPopupLayout, final UINotification uiNotification,
|
||||
final DistributionSetTagManagement distributionSetTagManagement,
|
||||
final DistributionAddUpdateWindowLayout distributionAddUpdateWindowLayout,
|
||||
final TenantConfigurationManagement tenantConfigurationManagement) {
|
||||
final TenantConfigurationManagement tenantConfigurationManagement,
|
||||
final SystemSecurityContext systemSecurityContext) {
|
||||
super(i18n, eventBus, permissionChecker, managementUIState, distributionAddUpdateWindowLayout,
|
||||
distributionSetManagement, dsMetadataPopupLayout, uiNotification, distributionSetTagManagement,
|
||||
createSoftwareModuleDetailsTable(i18n, permissionChecker, uiNotification),
|
||||
tenantConfigurationManagement);
|
||||
tenantConfigurationManagement, systemSecurityContext);
|
||||
restoreState();
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ import org.eclipse.hawkbit.repository.SystemManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetTagManagement;
|
||||
import org.eclipse.hawkbit.repository.TenantConfigurationManagement;
|
||||
import org.eclipse.hawkbit.security.SystemSecurityContext;
|
||||
import org.eclipse.hawkbit.ui.SpPermissionChecker;
|
||||
import org.eclipse.hawkbit.ui.UiProperties;
|
||||
import org.eclipse.hawkbit.ui.common.table.AbstractTableLayout;
|
||||
@@ -44,11 +45,12 @@ public class DistributionTableLayout extends AbstractTableLayout<DistributionTab
|
||||
final UINotification notification, final DistributionSetTagManagement distributionSetTagManagement,
|
||||
final TargetTagManagement targetTagManagement, final SystemManagement systemManagement,
|
||||
final TargetManagement targetManagement, final DeploymentManagement deploymentManagement,
|
||||
final TenantConfigurationManagement configManagement, final UiProperties uiProperties) {
|
||||
final TenantConfigurationManagement configManagement, final SystemSecurityContext systemSecurityContext,
|
||||
final UiProperties uiProperties) {
|
||||
|
||||
final DistributionAddUpdateWindowLayout distributionAddUpdateWindowLayout = new DistributionAddUpdateWindowLayout(
|
||||
i18n, notification, eventBus, distributionSetManagement, distributionSetTypeManagement,
|
||||
systemManagement, entityFactory, null, configManagement);
|
||||
systemManagement, entityFactory, null, configManagement, systemSecurityContext);
|
||||
|
||||
final DsMetadataPopupLayout dsMetadataPopupLayout = new DsMetadataPopupLayout(i18n, notification, eventBus,
|
||||
distributionSetManagement, entityFactory, permissionChecker);
|
||||
@@ -61,7 +63,7 @@ public class DistributionTableLayout extends AbstractTableLayout<DistributionTab
|
||||
distributionTable,
|
||||
new DistributionDetails(i18n, eventBus, permissionChecker, managementUIState, distributionSetManagement,
|
||||
dsMetadataPopupLayout, notification, distributionSetTagManagement,
|
||||
distributionAddUpdateWindowLayout, configManagement));
|
||||
distributionAddUpdateWindowLayout, configManagement, systemSecurityContext));
|
||||
}
|
||||
|
||||
public DistributionTable getDistributionTable() {
|
||||
|
||||
@@ -41,7 +41,8 @@ import org.eclipse.hawkbit.repository.model.Target;
|
||||
import org.eclipse.hawkbit.repository.model.TargetTag;
|
||||
import org.eclipse.hawkbit.repository.model.TargetTagAssignmentResult;
|
||||
import org.eclipse.hawkbit.repository.model.TargetUpdateStatus;
|
||||
import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationProperties;
|
||||
import org.eclipse.hawkbit.security.SystemSecurityContext;
|
||||
import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationProperties.TenantConfigurationKey;
|
||||
import org.eclipse.hawkbit.ui.SpPermissionChecker;
|
||||
import org.eclipse.hawkbit.ui.UiProperties;
|
||||
import org.eclipse.hawkbit.ui.common.ConfirmationDialog;
|
||||
@@ -110,47 +111,34 @@ import com.vaadin.ui.themes.ValoTheme;
|
||||
public class TargetTable extends AbstractTable<Target> {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(TargetTable.class);
|
||||
|
||||
private static final String TARGET_PINNED = "targetPinned";
|
||||
|
||||
private static final int PROPERTY_DEPT = 3;
|
||||
|
||||
private static final String MESSAGE_ASSIGN_TARGET_TO_MULTIPLE_DISTRIBUTIONS = "message.confirm.assign.multiple.entities.multiple.distributions";
|
||||
|
||||
private final transient TargetManagement targetManagement;
|
||||
|
||||
private final transient DistributionSetManagement distributionSetManagement;
|
||||
|
||||
private final transient TargetTagManagement tagManagement;
|
||||
|
||||
private final transient DeploymentManagement deploymentManagement;
|
||||
|
||||
private final transient TenantConfigurationManagement configManagement;
|
||||
private final transient SystemSecurityContext systemSecurityContext;
|
||||
|
||||
private final ManagementViewClientCriterion managementViewClientCriterion;
|
||||
|
||||
private final ManagementUIState managementUIState;
|
||||
private final UiProperties uiProperties;
|
||||
private final ActionTypeOptionGroupAssignmentLayout actionTypeOptionGroupLayout;
|
||||
private final MaintenanceWindowLayout maintenanceWindowLayout;
|
||||
|
||||
private Button targetPinnedBtn;
|
||||
|
||||
private boolean targetPinned;
|
||||
|
||||
private final UiProperties uiProperties;
|
||||
|
||||
private ConfirmationDialog confirmDialog;
|
||||
|
||||
private final ActionTypeOptionGroupAssignmentLayout actionTypeOptionGroupLayout;
|
||||
|
||||
private final MaintenanceWindowLayout maintenanceWindowLayout;
|
||||
|
||||
public TargetTable(final UIEventBus eventBus, final VaadinMessageSource i18n, final UINotification notification,
|
||||
final TargetManagement targetManagement, final ManagementUIState managementUIState,
|
||||
final SpPermissionChecker permChecker, final ManagementViewClientCriterion managementViewClientCriterion,
|
||||
final DistributionSetManagement distributionSetManagement, final TargetTagManagement tagManagement,
|
||||
final DeploymentManagement deploymentManagement, final TenantConfigurationManagement configManagement,
|
||||
final UiProperties uiProperties) {
|
||||
final SystemSecurityContext systemSecurityContext, final UiProperties uiProperties) {
|
||||
super(eventBus, i18n, notification, permChecker);
|
||||
this.targetManagement = targetManagement;
|
||||
this.managementViewClientCriterion = managementViewClientCriterion;
|
||||
@@ -162,6 +150,7 @@ public class TargetTable extends AbstractTable<Target> {
|
||||
this.uiProperties = uiProperties;
|
||||
this.actionTypeOptionGroupLayout = new ActionTypeOptionGroupAssignmentLayout(i18n);
|
||||
this.maintenanceWindowLayout = new MaintenanceWindowLayout(i18n);
|
||||
this.systemSecurityContext = systemSecurityContext;
|
||||
|
||||
setItemDescriptionGenerator(new AssignInstalledDSTooltipGenerator());
|
||||
addNewContainerDS();
|
||||
@@ -892,7 +881,7 @@ public class TargetTable extends AbstractTable<Target> {
|
||||
if (ids.isEmpty()) {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
if (isMultiAssignmentsEnabled()) {
|
||||
if (isMultiAssignmentEnabled()) {
|
||||
return new HashSet<>(ids);
|
||||
}
|
||||
return Collections.singleton(ids.iterator().next());
|
||||
@@ -982,11 +971,9 @@ public class TargetTable extends AbstractTable<Target> {
|
||||
return "";
|
||||
}
|
||||
|
||||
private boolean isMultiAssignmentsEnabled() {
|
||||
return configManagement
|
||||
.getConfigurationValue(TenantConfigurationProperties.TenantConfigurationKey.MULTI_ASSIGNMENTS_ENABLED,
|
||||
Boolean.class)
|
||||
.getValue();
|
||||
private boolean isMultiAssignmentEnabled() {
|
||||
return systemSecurityContext.runAsSystem(() -> configManagement
|
||||
.getConfigurationValue(TenantConfigurationKey.MULTI_ASSIGNMENTS_ENABLED, Boolean.class).getValue());
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user