Project

General

Profile

« Previous | Next » 

Revision f951fe45

Added by Andreas Kohlbecker almost 6 years ago

disabling ToManyRelatedEntitiesComboboxSelects when user lacks permissions

View differences:

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