Revision a8284340
Added by Katja Luther over 4 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/e4/details/DetailsViewerE4.java | ||
---|---|---|
9 | 9 |
|
10 | 10 |
package eu.etaxonomy.taxeditor.view.e4.details; |
11 | 11 |
|
12 |
import java.util.EnumSet; |
|
12 | 13 |
import java.util.HashSet; |
13 | 14 |
import java.util.Set; |
14 | 15 |
|
... | ... | |
46 | 47 |
import eu.etaxonomy.cdm.model.occurrence.FieldUnit; |
47 | 48 |
import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen; |
48 | 49 |
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; |
50 |
import eu.etaxonomy.cdm.model.permission.CRUD; |
|
49 | 51 |
import eu.etaxonomy.cdm.model.permission.Group; |
50 | 52 |
import eu.etaxonomy.cdm.model.permission.User; |
51 | 53 |
import eu.etaxonomy.cdm.model.reference.Reference; |
54 |
import eu.etaxonomy.cdm.model.taxon.Synonym; |
|
55 |
import eu.etaxonomy.cdm.model.taxon.Taxon; |
|
52 | 56 |
import eu.etaxonomy.cdm.model.taxon.TaxonBase; |
57 |
import eu.etaxonomy.cdm.model.taxon.TaxonNode; |
|
53 | 58 |
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship; |
54 | 59 |
import eu.etaxonomy.cdm.model.term.DefinedTermBase; |
55 | 60 |
import eu.etaxonomy.cdm.model.term.TermNode; |
... | ... | |
67 | 72 |
import eu.etaxonomy.taxeditor.model.PolytomousKeyRelationship; |
68 | 73 |
import eu.etaxonomy.taxeditor.preference.NameDetailsConfigurator; |
69 | 74 |
import eu.etaxonomy.taxeditor.preference.PreferencesUtil; |
75 |
import eu.etaxonomy.taxeditor.store.CdmStore; |
|
70 | 76 |
import eu.etaxonomy.taxeditor.store.StoreUtil; |
71 | 77 |
import eu.etaxonomy.taxeditor.store.UsageTermCollection; |
72 | 78 |
import eu.etaxonomy.taxeditor.ui.element.RootElement; |
... | ... | |
429 | 435 |
|
430 | 436 |
private void createTaxonSections(RootElement parent) { |
431 | 437 |
NameDetailsConfigurator config = PreferencesUtil.getPreferredNameDetailsConfiguration(); |
432 |
// EnumSet<CRUD> requiredCrud; |
|
433 |
// if(getInput() == null || StoreUtil.getCdmEntity(getInput()).getId() == 0) { |
|
434 |
// // new entity, not yet saved |
|
435 |
// requiredCrud = EnumSet.of(CRUD.CREATE); |
|
436 |
// } else { |
|
437 |
// requiredCrud = EnumSet.of(CRUD.UPDATE); |
|
438 |
// } |
|
439 |
// boolean hasPermission = CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getInput()), requiredCrud); |
|
440 |
// detailsEnabled = hasPermission; |
|
438 |
EnumSet<CRUD> requiredCrud; |
|
439 |
if(getInput() == null || StoreUtil.getCdmEntity(getInput()).getId() == 0) { |
|
440 |
// new entity, not yet saved |
|
441 |
requiredCrud = EnumSet.of(CRUD.CREATE); |
|
442 |
} else { |
|
443 |
requiredCrud = EnumSet.of(CRUD.UPDATE); |
|
444 |
} |
|
445 |
boolean hasPermission = CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getInput()), requiredCrud); |
|
446 |
TaxonBase taxonBase = (TaxonBase)getInput(); |
|
447 |
Taxon acceptedTaxon = null; |
|
448 |
if (taxonBase instanceof Taxon){ |
|
449 |
acceptedTaxon = (Taxon)taxonBase; |
|
450 |
}else{ |
|
451 |
acceptedTaxon = ((Synonym)taxonBase).getAcceptedTaxon(); |
|
452 |
} |
|
453 |
Set<TaxonNode> nodes = acceptedTaxon.getTaxonNodes(); |
|
454 |
// check for subtree permissions as well. |
|
455 |
if (hasPermission){ |
|
456 |
for (TaxonNode node: nodes){ |
|
457 |
hasPermission &= CdmStore.currentAuthentiationHasPermission(node, requiredCrud); |
|
458 |
} |
|
459 |
} |
|
460 |
detailsEnabled = hasPermission; |
|
441 | 461 |
ParsingMessagesSection parsingMessagesSection = formFactory.createParsingMessagesSection(getConversationHolder(), parent, this, |
442 | 462 |
StoreUtil.getSectionStyle(ParsingMessagesSection.class, getInput().getClass().getCanonicalName(), true)); |
443 | 463 |
if (config == null){ |
Also available in: Unified diff
ref #8239: disable details, facts and supplemental data for insufficient rights