From 39bb87f9e2eacf204438f778fc92b99847dc8101 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Thu, 26 Apr 2018 12:03:19 +0200 Subject: Prevent users from publishing non-vmware image and filter non-vmware image out from the published image list in case they manage to somehow upload it anyway --- .../org/openslx/dozmod/gui/window/ImageDetailsWindow.java | 8 ++++++++ .../org/openslx/dozmod/gui/window/ImagePublishedWindow.java | 13 +++++++++++++ 2 files changed, 21 insertions(+) (limited to 'dozentenmodul/src/main/java') diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java index 6ec350a3..d198e897 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java @@ -490,6 +490,14 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe * masterserver. */ private void uploadToMaster() { + // 04.2018: bail if we the user tries to publish a non-vmware image. + if (Session.hasFeature(Feature.MULTIPLE_HYPERVISORS) && image.virtId != TConst.VIRT_VMWARE) { + Gui.showMessageBox( + MetaDataCache.getVirtualizerById(image.virtId).virtName + + " ist derzeit nicht für den öffentlichen Austausch freigegeben.", + MessageType.ERROR, null, null); + return; + } if (metadataChanged || permissionsChanged) { if (Gui.showMessageBox("Sie haben unspeicherte Änderungen, wollen Sie diese erst speichern?", MessageType.QUESTION_YESNO, null, null)) { diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java index 620d6bc7..3fc119ec 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImagePublishedWindow.java @@ -41,6 +41,8 @@ import org.openslx.dozmod.thrift.ThriftError; import org.openslx.dozmod.thrift.cache.ImagePublishedCache; import org.openslx.dozmod.thrift.cache.OrganizationCache; import org.openslx.dozmod.thrift.cache.UserCache; +import org.openslx.sat.thrift.version.Feature; +import org.openslx.thrifthelper.TConst; import org.openslx.thrifthelper.ThriftManager; import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; @@ -251,6 +253,17 @@ public class ImagePublishedWindow extends ImagePublishedWindowLayout implements final List imagePublishedList = ImagePublishedCache.get(forceRefresh); if (imagePublishedList == null) return; + // 04.2018: Safety check to hide the non-vmware images from the list + // in case they somehow manage to get published. Remove this when we + // support publishing images from other hypervisors. + if (Session.hasFeature(Feature.MULTIPLE_HYPERVISORS)) { + for (int i = 0; i < imagePublishedList.size(); i++) { + ImageSummaryRead current = imagePublishedList.get(i); + if (current.virtId != TConst.VIRT_VMWARE) { + imagePublishedList.remove(i); + } + } + } Gui.asyncExec(new Runnable() { @Override public void run() { -- cgit v1.2.3-55-g7522