Revision f951fe45
Added by Andreas Kohlbecker almost 6 years ago
src/main/java/eu/etaxonomy/cdm/vaadin/security/CdmEditDeletePermissionTester.java | ||
---|---|---|
1 |
/** |
|
2 |
* Copyright (C) 2018 EDIT |
|
3 |
* European Distributed Institute of Taxonomy |
|
4 |
* http://www.e-taxonomy.eu |
|
5 |
* |
|
6 |
* The contents of this file are subject to the Mozilla Public License Version 1.1 |
|
7 |
* See LICENSE.TXT at the top of this package for the full license terms. |
|
8 |
*/ |
|
9 |
package eu.etaxonomy.cdm.vaadin.security; |
|
10 |
|
|
11 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
|
12 |
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD; |
|
13 |
import eu.etaxonomy.vaadin.permission.EditPermissionTester; |
|
14 |
|
|
15 |
/** |
|
16 |
* To be used for {@link ToManyRelatedEntitiesComboboxSelect} |
|
17 |
* |
|
18 |
* @author a.kohlbecker |
|
19 |
* @since Apr 20, 2018 |
|
20 |
* |
|
21 |
*/ |
|
22 |
public class CdmEditDeletePermissionTester implements EditPermissionTester { |
|
23 |
@Override |
|
24 |
public boolean userHasEditPermission(Object bean) { |
|
25 |
return UserHelper.fromSession().userHasPermission((CdmBase)bean, CRUD.UPDATE, CRUD.DELETE); |
|
26 |
} |
|
27 |
} |
src/main/java/eu/etaxonomy/cdm/vaadin/view/name/NameTypeDesignationPopupEditor.java | ||
---|---|---|
21 | 21 |
import eu.etaxonomy.cdm.model.name.TaxonName; |
22 | 22 |
import eu.etaxonomy.cdm.model.reference.Reference; |
23 | 23 |
import eu.etaxonomy.cdm.vaadin.event.TaxonNameEditorAction; |
24 |
import eu.etaxonomy.cdm.vaadin.security.CdmEditDeletePermissionTester; |
|
24 | 25 |
import eu.etaxonomy.cdm.vaadin.util.converter.SetToListConverter; |
25 | 26 |
import eu.etaxonomy.vaadin.component.ToManyRelatedEntitiesComboboxSelect; |
26 | 27 |
import eu.etaxonomy.vaadin.component.ToOneRelatedEntityCombobox; |
... | ... | |
155 | 156 |
row++; |
156 | 157 |
typifiedNamesComboboxSelect = new ToManyRelatedEntitiesComboboxSelect<TaxonName>(TaxonName.class, "Typified names"); |
157 | 158 |
typifiedNamesComboboxSelect.setConverter(new SetToListConverter<TaxonName>()); |
159 |
typifiedNamesComboboxSelect.setEditPermissionTester(new CdmEditDeletePermissionTester()); |
|
158 | 160 |
addField(typifiedNamesComboboxSelect, "typifiedNames", 0, row, 3, row); |
159 | 161 |
typifiedNamesComboboxSelect.setReadOnly(false); // FIXME this does not help |
160 | 162 |
|
src/main/java/eu/etaxonomy/cdm/vaadin/view/name/TaxonNamePopupEditor.java | ||
---|---|---|
37 | 37 |
import eu.etaxonomy.cdm.model.name.Rank; |
38 | 38 |
import eu.etaxonomy.cdm.model.name.TaxonName; |
39 | 39 |
import eu.etaxonomy.cdm.model.reference.Reference; |
40 |
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD; |
|
41 | 40 |
import eu.etaxonomy.cdm.vaadin.component.common.TeamOrPersonField; |
42 | 41 |
import eu.etaxonomy.cdm.vaadin.event.ReferenceEditorAction; |
43 | 42 |
import eu.etaxonomy.cdm.vaadin.event.TaxonNameEditorAction; |
44 | 43 |
import eu.etaxonomy.cdm.vaadin.security.AccessRestrictedView; |
45 |
import eu.etaxonomy.cdm.vaadin.security.UserHelper;
|
|
44 |
import eu.etaxonomy.cdm.vaadin.security.CdmEditDeletePermissionTester;
|
|
46 | 45 |
import eu.etaxonomy.cdm.vaadin.util.TeamOrPersonBaseCaptionGenerator; |
47 | 46 |
import eu.etaxonomy.cdm.vaadin.util.converter.SetToListConverter; |
48 | 47 |
import eu.etaxonomy.vaadin.component.ReloadableLazyComboBox; |
... | ... | |
51 | 50 |
import eu.etaxonomy.vaadin.component.ToOneRelatedEntityCombobox; |
52 | 51 |
import eu.etaxonomy.vaadin.event.EditorActionType; |
53 | 52 |
import eu.etaxonomy.vaadin.mvp.AbstractCdmPopupEditor; |
54 |
import eu.etaxonomy.vaadin.permission.EditPermissionTester; |
|
55 | 53 |
|
56 | 54 |
/** |
57 | 55 |
* @author a.kohlbecker |
... | ... | |
310 | 308 |
addField(basionymsComboboxSelect, "basionyms", 0, row, 3, row); |
311 | 309 |
basionymsComboboxSelect.setWidth(100, Unit.PERCENTAGE); |
312 | 310 |
basionymsComboboxSelect.withEditButton(true); |
313 |
basionymsComboboxSelect.setEditPermissionTester(new EditPermissionTester() { |
|
314 |
|
|
315 |
@Override |
|
316 |
public boolean userHasEditPermission(Object bean) { |
|
317 |
return UserHelper.fromSession().userHasPermission((CdmBase)bean, CRUD.UPDATE, CRUD.DELETE); |
|
318 |
} |
|
319 |
}); |
|
311 |
basionymsComboboxSelect.setEditPermissionTester(new CdmEditDeletePermissionTester()); |
|
320 | 312 |
basionymsComboboxSelect.setEditActionListener(e -> { |
321 | 313 |
|
322 | 314 |
Object fieldValue = e.getSource().getValue(); |
Also available in: Unified diff
disabling ToManyRelatedEntitiesComboboxSelects when user lacks permissions