Project

General

Profile

« Previous | Next » 

Revision 32a4157a

Added by Andreas Kohlbecker over 5 years ago

using CachingUserHelper also with RegistrationItemNameAndTypeButtons to speed up registration workingsets

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/component/registration/RegistrationItemNameAndTypeButtons.java
24 24
import eu.etaxonomy.cdm.api.service.dto.RegistrationDTO;
25 25
import eu.etaxonomy.cdm.api.service.name.TypeDesignationSetManager.TypeDesignationWorkingSet;
26 26
import eu.etaxonomy.cdm.api.service.name.TypeDesignationSetManager.TypeDesignationWorkingSetType;
27
import eu.etaxonomy.cdm.api.utility.UserHelper;
28
import eu.etaxonomy.cdm.model.ICdmEntityUuidCacher;
27 29
import eu.etaxonomy.cdm.model.name.RegistrationStatus;
28 30
import eu.etaxonomy.cdm.model.name.TaxonName;
29 31
import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
......
63 65

  
64 66
    private Link identifierLink;
65 67

  
66
    public RegistrationItemNameAndTypeButtons(RegistrationDTO regDto) {
68
    public RegistrationItemNameAndTypeButtons(RegistrationDTO regDto, ICdmEntityUuidCacher entitiyCacher) {
67 69

  
68 70
        boolean isRegistrationLocked = EnumSet.of(
69 71
                RegistrationStatus.PUBLISHED, RegistrationStatus.REJECTED)
......
71 73

  
72 74
        setWidth(100, Unit.PERCENTAGE);
73 75

  
76
        UserHelper userHelper;
77
        if(entitiyCacher != null){
78
            userHelper = UserHelperAccess.userHelper().withCache(entitiyCacher);
79
        } else {
80
            userHelper = UserHelperAccess.userHelper();
81
        }
82

  
74 83
        if(regDto.getNameRef() != null){
75 84
            Button nameButton = new Button("Name:");
76 85
            nameButton.setDescription("Edit the Name");
77 86
            nameIdButton = new IdButton<TaxonName>(TaxonName.class, regDto.getNameRef().getUuid(), nameButton);
78 87
            Label nameLabel = new Label(regDto.getNameRef().getLabel());
79 88
            nameLabel.setWidthUndefined();
80
            boolean userHasPermission = UserHelperAccess.userHelper().userHasPermission(regDto.registration().getName(), CRUD.UPDATE);
89
            boolean userHasPermission = userHelper.userHasPermission(regDto.registration().getName(), CRUD.UPDATE);
81 90
            nameButton.setReadOnly(isRegistrationLocked || ! userHasPermission);
82 91

  
83 92
            addComponent(nameIdButton.getButton());
......
91 100
                addComponent(nameLabel);
92 101
            }
93 102
        }
94
        boolean userHasAddPermission = !regDto.isPersisted() || UserHelperAccess.userHelper().userHasPermission(regDto.registration(), CRUD.UPDATE);
103
        boolean userHasAddPermission = !regDto.isPersisted() || userHelper.userHasPermission(regDto.registration(), CRUD.UPDATE);
95 104
        if(regDto.getOrderdTypeDesignationWorkingSets() != null){
96 105
            for(TypedEntityReference<TypeDesignationBase<?>> baseEntityRef : regDto.getOrderdTypeDesignationWorkingSets().keySet()) {
97 106
                TypeDesignationWorkingSet typeDesignationWorkingSet = regDto.getOrderdTypeDesignationWorkingSets().get(baseEntityRef);
......
99 108
                String buttonLabel = SpecimenOrObservationBase.class.isAssignableFrom(baseEntityRef.getType()) ? "Type": "NameType";
100 109
                Button tdButton = new Button(buttonLabel + ":");
101 110
                tdButton.setDescription("Edit the type designation working set");
102
                boolean userHasUpdatePermission = UserHelperAccess.userHelper().userHasPermission(baseEntityRef.getType(), baseEntityRef.getUuid(), CRUD.UPDATE, CRUD.DELETE);
111
                boolean userHasUpdatePermission = userHelper.userHasPermission(baseEntityRef.getType(), baseEntityRef.getUuid(), CRUD.UPDATE, CRUD.DELETE);
103 112
                tdButton.setReadOnly(isRegistrationLocked || !userHasUpdatePermission);
104 113
                addComponent(tdButton);
105 114

  
src/main/java/eu/etaxonomy/cdm/vaadin/view/registration/RegistrationWorkingsetPresenter.java
232 232

  
233 233
                CdmBeanItemContainerFactory selectFieldFactory = new CdmBeanItemContainerFactory(getRepo());
234 234
                // submitters have GrantedAuthorities like REGISTRATION(PREPARATION).[UPDATE]{ab4459eb-3b96-40ba-bfaa-36915107d59e}
235
                UserHelper userHelper = UserHelperAccess.userHelper();
235
                UserHelper userHelper = UserHelperAccess.userHelper().withCache(getCache());
236 236
                Set<RegistrationStatus> availableStatus = new HashSet<>();
237 237

  
238 238
                boolean canChangeStatus = userHelper.userHasPermission(regDto.registration(), CRUD.UPDATE);
src/main/java/eu/etaxonomy/cdm/vaadin/view/registration/RegistrationWorksetViewBean.java
330 330
        }
331 331
        typifiedNamesMap.put(dto.getUuid(), typifiedNameReference);
332 332

  
333
        RegistrationItemNameAndTypeButtons regItemButtonGroup = new RegistrationItemNameAndTypeButtons(dto);
333
        RegistrationItemNameAndTypeButtons regItemButtonGroup = new RegistrationItemNameAndTypeButtons(dto, getPresenter().getCache());
334 334
        UUID registrationEntityUuid = dto.getUuid();
335 335

  
336 336
        RegistrationItemButtons regItemButtons = new RegistrationItemButtons();

Also available in: Unified diff