Revision d0a4f3d9
Added by Katja Luther over 4 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/handler/OpenChecklistEditorHandlerE4.java | ||
---|---|---|
91 | 91 |
*/ |
92 | 92 |
@Override |
93 | 93 |
protected boolean canExecute(ITaxonTreeNode entity) { |
94 |
|
|
94 | 95 |
DescriptionBase instance = TaxonDescription.NewInstance(); |
95 |
boolean hasPermission = CdmStore.currentAuthentiationHasPermission(instance, RequiredPermissions.DESCRIPTION_EDIT); |
|
96 |
if (!hasPermission){ |
|
97 |
hasPermission = hasPermission || ((TaxonNode)entity).hasChildNodes()? checkPermission(((TaxonNode)entity).getChildNodes(), false) || CdmStore.currentAuthentiationHasPermission(((TaxonNode) entity), RequiredPermissions.TAXONNODE_EDIT):CdmStore.currentAuthentiationHasPermission(((TaxonNode) entity), RequiredPermissions.TAXONNODE_EDIT);
|
|
96 |
boolean hasDescriptionPermission = CdmStore.currentAuthentiationHasPermission(instance, RequiredPermissions.DESCRIPTION_EDIT);
|
|
97 |
if (!hasDescriptionPermission){
|
|
98 |
return false;
|
|
98 | 99 |
} |
100 |
boolean hasPermission = ((TaxonNode)entity).hasChildNodes() ? checkPermission(((TaxonNode)entity).getChildNodes(), false) || CdmStore.currentAuthentiationHasPermission(((TaxonNode) entity), RequiredPermissions.TAXONNODE_EDIT):CdmStore.currentAuthentiationHasPermission(((TaxonNode) entity), RequiredPermissions.TAXONNODE_EDIT); |
|
99 | 101 |
return hasPermission && PreferencesUtil.getBooleanValue(PreferencePredicate.DistributionEditorActivated.getKey()); |
100 | 102 |
} |
101 | 103 |
|
... | ... | |
109 | 111 |
for (TaxonNode node:nodes){ |
110 | 112 |
if (node.hasChildNodes() && !result){ |
111 | 113 |
result = result ||checkPermission(node.getChildNodes(), result); |
114 |
|
|
112 | 115 |
} |
113 | 116 |
result = result || CdmStore.currentAuthentiationHasPermission(node, RequiredPermissions.TAXONNODE_EDIT); |
117 |
if (result){ |
|
118 |
return result; |
|
119 |
} |
|
114 | 120 |
} |
115 | 121 |
return result; |
116 | 122 |
} |
Also available in: Unified diff
ref #5873: performance issues