disabling ToManyRelatedEntitiesComboboxSelects when user lacks permissions
authorAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Fri, 20 Apr 2018 20:07:26 +0000 (22:07 +0200)
committerAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Fri, 20 Apr 2018 20:07:48 +0000 (22:07 +0200)
src/main/java/eu/etaxonomy/cdm/vaadin/security/CdmEditDeletePermissionTester.java [new file with mode: 0644]
src/main/java/eu/etaxonomy/cdm/vaadin/view/name/NameTypeDesignationPopupEditor.java
src/main/java/eu/etaxonomy/cdm/vaadin/view/name/TaxonNamePopupEditor.java

diff --git a/src/main/java/eu/etaxonomy/cdm/vaadin/security/CdmEditDeletePermissionTester.java b/src/main/java/eu/etaxonomy/cdm/vaadin/security/CdmEditDeletePermissionTester.java
new file mode 100644 (file)
index 0000000..91b8f71
--- /dev/null
@@ -0,0 +1,27 @@
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.vaadin.security;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
+import eu.etaxonomy.vaadin.permission.EditPermissionTester;
+
+/**
+ * To be used for {@link ToManyRelatedEntitiesComboboxSelect}
+ *
+ * @author a.kohlbecker
+ * @since Apr 20, 2018
+ *
+ */
+public class CdmEditDeletePermissionTester implements EditPermissionTester {
+    @Override
+    public boolean userHasEditPermission(Object bean) {
+        return  UserHelper.fromSession().userHasPermission((CdmBase)bean, CRUD.UPDATE, CRUD.DELETE);
+    }
+}
\ No newline at end of file
index 2cf07d213924c0f4ef6d8f5195ebc41d198f09a6..e3c1fd157fc1698b95a43f2bdc5f37780fbaf591 100644 (file)
@@ -21,6 +21,7 @@ import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.vaadin.event.TaxonNameEditorAction;
+import eu.etaxonomy.cdm.vaadin.security.CdmEditDeletePermissionTester;
 import eu.etaxonomy.cdm.vaadin.util.converter.SetToListConverter;
 import eu.etaxonomy.vaadin.component.ToManyRelatedEntitiesComboboxSelect;
 import eu.etaxonomy.vaadin.component.ToOneRelatedEntityCombobox;
@@ -155,6 +156,7 @@ public class NameTypeDesignationPopupEditor extends AbstractCdmPopupEditor<NameT
         row++;
         typifiedNamesComboboxSelect = new ToManyRelatedEntitiesComboboxSelect<TaxonName>(TaxonName.class, "Typified names");
         typifiedNamesComboboxSelect.setConverter(new SetToListConverter<TaxonName>());
+        typifiedNamesComboboxSelect.setEditPermissionTester(new CdmEditDeletePermissionTester());
         addField(typifiedNamesComboboxSelect, "typifiedNames", 0, row, 3, row);
         typifiedNamesComboboxSelect.setReadOnly(false); // FIXME this does not help
 
index b21b2d45f3a36ff9c9b666e576d5b8a358a06211..d406f11939f5c69dca00502fc1fce48f4e20218f 100644 (file)
@@ -37,12 +37,11 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.name.Rank;
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.reference.Reference;
-import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;
 import eu.etaxonomy.cdm.vaadin.component.common.TeamOrPersonField;
 import eu.etaxonomy.cdm.vaadin.event.ReferenceEditorAction;
 import eu.etaxonomy.cdm.vaadin.event.TaxonNameEditorAction;
 import eu.etaxonomy.cdm.vaadin.security.AccessRestrictedView;
-import eu.etaxonomy.cdm.vaadin.security.UserHelper;
+import eu.etaxonomy.cdm.vaadin.security.CdmEditDeletePermissionTester;
 import eu.etaxonomy.cdm.vaadin.util.TeamOrPersonBaseCaptionGenerator;
 import eu.etaxonomy.cdm.vaadin.util.converter.SetToListConverter;
 import eu.etaxonomy.vaadin.component.ReloadableLazyComboBox;
@@ -51,7 +50,6 @@ import eu.etaxonomy.vaadin.component.ToManyRelatedEntitiesComboboxSelect;
 import eu.etaxonomy.vaadin.component.ToOneRelatedEntityCombobox;
 import eu.etaxonomy.vaadin.event.EditorActionType;
 import eu.etaxonomy.vaadin.mvp.AbstractCdmPopupEditor;
-import eu.etaxonomy.vaadin.permission.EditPermissionTester;
 
 /**
  * @author a.kohlbecker
@@ -310,13 +308,7 @@ public class TaxonNamePopupEditor extends AbstractCdmPopupEditor<TaxonName, Taxo
         addField(basionymsComboboxSelect, "basionyms", 0, row, 3, row);
         basionymsComboboxSelect.setWidth(100, Unit.PERCENTAGE);
         basionymsComboboxSelect.withEditButton(true);
-        basionymsComboboxSelect.setEditPermissionTester(new EditPermissionTester() {
-
-            @Override
-            public boolean userHasEditPermission(Object bean) {
-                return  UserHelper.fromSession().userHasPermission((CdmBase)bean, CRUD.UPDATE, CRUD.DELETE);
-            }
-        });
+        basionymsComboboxSelect.setEditPermissionTester(new CdmEditDeletePermissionTester());
         basionymsComboboxSelect.setEditActionListener(e -> {
 
             Object fieldValue = e.getSource().getValue();