diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/footer/SMDeleteActionsLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/footer/SMDeleteActionsLayout.java index cfa7c2125..f101fe7f8 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/footer/SMDeleteActionsLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/artifacts/footer/SMDeleteActionsLayout.java @@ -150,7 +150,12 @@ public class SMDeleteActionsLayout extends AbstractDeleteActionsLayout { */ @Override protected boolean hasUpdatePermission() { - return permChecker.hasUpdateDistributionPermission(); + /** + * Footer layout should be displayed only when software modeule has + * delete permission.So update permission need not be checked in this + * case. + */ + return false; } /* @@ -361,15 +366,4 @@ public class SMDeleteActionsLayout extends AbstractDeleteActionsLayout { */ } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.footer.AbstractDeleteActionsLayout# - * hasReadPermission() - */ - @Override - protected boolean hasReadPermission() { - return permChecker.hasReadDistributionPermission(); - } - } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/footer/AbstractDeleteActionsLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/footer/AbstractDeleteActionsLayout.java index f991a729c..497ca9942 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/footer/AbstractDeleteActionsLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/common/footer/AbstractDeleteActionsLayout.java @@ -54,7 +54,7 @@ public abstract class AbstractDeleteActionsLayout extends VerticalLayout impleme * Initialize. */ protected void init() { - if (hasReadPermission() || hasDeletePermission() || hasUpdatePermission() || hasBulkUploadPermission()) { + if (hasCountMessage() || hasDeletePermission() || hasUpdatePermission() || hasBulkUploadPermission()) { createComponents(); buildLayout(); reload(); @@ -98,13 +98,16 @@ public abstract class AbstractDeleteActionsLayout extends VerticalLayout impleme hLayout.addComponent(bulkUploadStatusButton); hLayout.setComponentAlignment(bulkUploadStatusButton, Alignment.BOTTOM_LEFT); } - addComponent(dropHintLayout); - addComponent(hLayout); - setComponentAlignment(dropHintLayout, Alignment.BOTTOM_CENTER); - setComponentAlignment(hLayout, Alignment.BOTTOM_CENTER); + if (dropHintLayout.getComponentCount() > 0) { + addComponent(dropHintLayout); + setComponentAlignment(dropHintLayout, Alignment.BOTTOM_CENTER); + } + if (hLayout.getComponentCount() > 0) { + addComponent(hLayout); + setComponentAlignment(hLayout, Alignment.BOTTOM_CENTER); + } setStyleName("footer-layout"); setWidth("100%"); - } private DragAndDropWrapper createDeleteWrapperLayout() { @@ -155,21 +158,29 @@ public abstract class AbstractDeleteActionsLayout extends VerticalLayout impleme } protected void setUploadStatusButtonCaption(final Long count) { - bulkUploadStatusButton.setCaption("
" + count + "
"); + if (null != bulkUploadStatusButton) { + bulkUploadStatusButton.setCaption("
" + count + "
"); + } } protected void enableBulkUploadStatusButton() { - bulkUploadStatusButton.setVisible(true); + if (null != bulkUploadStatusButton) { + bulkUploadStatusButton.setVisible(true); + } } protected void updateUploadBtnIconToComplete() { - bulkUploadStatusButton.removeStyleName(SPUIStyleDefinitions.BULK_UPLOAD_PROGRESS_INDICATOR_STYLE); - bulkUploadStatusButton.setIcon(FontAwesome.UPLOAD); + if (null != bulkUploadStatusButton) { + bulkUploadStatusButton.removeStyleName(SPUIStyleDefinitions.BULK_UPLOAD_PROGRESS_INDICATOR_STYLE); + bulkUploadStatusButton.setIcon(FontAwesome.UPLOAD); + } } protected void updateUploadBtnIconToProgressIndicator() { - bulkUploadStatusButton.addStyleName(SPUIStyleDefinitions.BULK_UPLOAD_PROGRESS_INDICATOR_STYLE); - bulkUploadStatusButton.setIcon(null); + if (null != bulkUploadStatusButton) { + bulkUploadStatusButton.addStyleName(SPUIStyleDefinitions.BULK_UPLOAD_PROGRESS_INDICATOR_STYLE); + bulkUploadStatusButton.setIcon(null); + } } protected void actionButtonClicked() { @@ -217,10 +228,12 @@ public abstract class AbstractDeleteActionsLayout extends VerticalLayout impleme * new count value. */ protected void updateActionsCount(final int newCount) { - if (newCount > 0) { - noActionBtn.setCaption(getActionsButtonLabel() + "
" + newCount + "
"); - } else { - noActionBtn.setCaption(getNoActionsButtonLabel()); + if (noActionBtn != null) { + if (newCount > 0) { + noActionBtn.setCaption(getActionsButtonLabel() + "
" + newCount + "
"); + } else { + noActionBtn.setCaption(getNoActionsButtonLabel()); + } } } @@ -243,8 +256,10 @@ public abstract class AbstractDeleteActionsLayout extends VerticalLayout impleme } protected void hideBulkUploadStatusButton() { - bulkUploadStatusButton.setCaption(null); - bulkUploadStatusButton.setVisible(false); + if (null != bulkUploadStatusButton) { + bulkUploadStatusButton.setCaption(null); + bulkUploadStatusButton.setVisible(false); + } } /** @@ -358,6 +373,4 @@ public abstract class AbstractDeleteActionsLayout extends VerticalLayout impleme protected abstract void showBulkUploadWindow(); - protected abstract boolean hasReadPermission(); - } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/footer/DSDeleteActionsLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/footer/DSDeleteActionsLayout.java index cc89312b2..f8a8c4cb4 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/footer/DSDeleteActionsLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/distributions/footer/DSDeleteActionsLayout.java @@ -541,14 +541,4 @@ public class DSDeleteActionsLayout extends AbstractDeleteActionsLayout { return getCurrentDistributionSetType() != null && getCurrentDistributionSetType().getName().equals(dsTypeName); } - /* - * (non-Javadoc) - * - * @see org.eclipse.hawkbit.ui.common.footer.AbstractDeleteActionsLayout# - * hasReadPermission() - */ - @Override - protected boolean hasReadPermission() { - return permChecker.hasReadDistributionPermission(); - } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/DeploymentView.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/DeploymentView.java index 565404106..78f1a0530 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/DeploymentView.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/DeploymentView.java @@ -206,13 +206,18 @@ public class DeploymentView extends VerticalLayout implements View, BrowserWindo } private Boolean showFooterLayout() { - if ((permChecker.hasDeleteDistributionPermission() || permChecker.hasDeleteTargetPermission()) - || (permChecker.hasReadDistributionPermission() && permChecker.hasUpdateTargetPermission())) { + if (permChecker.hasTargetReadPermission() + || (permChecker.hasDeleteDistributionPermission() || permChecker.hasDeleteTargetPermission()) + || hasDeploymentPermission()) { return true; } return false; } + private boolean hasDeploymentPermission() { + return permChecker.hasReadDistributionPermission() && permChecker.hasUpdateTargetPermission(); + } + private void displayTargetWidgetsOnly() { mainLayout.setColumns(3); mainLayout.setRows(2); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/DeleteActionsLayout.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/DeleteActionsLayout.java index fe1d5dd2b..9473ea783 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/DeleteActionsLayout.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/management/footer/DeleteActionsLayout.java @@ -193,7 +193,7 @@ public class DeleteActionsLayout extends AbstractDeleteActionsLayout { */ @Override protected boolean hasUpdatePermission() { - return permChecker.hasUpdateDistributionPermission() || permChecker.hasUpdateTargetPermission(); + return permChecker.hasUpdateTargetPermission() && permChecker.hasReadDistributionPermission(); } /* @@ -377,7 +377,7 @@ public class DeleteActionsLayout extends AbstractDeleteActionsLayout { */ @Override protected boolean hasCountMessage() { - return true; + return permChecker.hasTargetReadPermission(); } /* @@ -589,9 +589,4 @@ public class DeleteActionsLayout extends AbstractDeleteActionsLayout { } } - - @Override - protected boolean hasReadPermission() { - return permChecker.hasTargetReadPermission(); - } }