import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.editor.AppModelId;
import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
conversation.commit(true);
dirty.setDirty(false);
- EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, true);
+ EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, new TaxonNodeDto(input.getTaxonNode()));
EventUtility.postEvent(WorkbenchEventConstants.SAVE_TAXON, true);
// Stop the progress monitor.
monitor.done();
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
import eu.etaxonomy.taxeditor.event.EventUtility;
import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
taxonNodeWizard.setEntity(entity);
WizardDialog dialog = new WizardDialog(shell, taxonNodeWizard);
dialog.open();
- EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, true);
+ EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, new TaxonNodeDto(entity));
}
- selection_secundum = formFactory.createSelectionElement(Reference.class,//getConversationHolder(),
+ selection_secundum = formFactory.createSelectionElement(Reference.class,
formElement, "Secundum",
entity.getSec(), EntitySelectionElement.ALL,
style);
*/
package eu.etaxonomy.taxeditor.view.e4;
+import java.util.Collection;
import java.util.Set;
import javax.annotation.PreDestroy;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWTException;
+import org.springframework.security.core.GrantedAuthority;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
if (node != null){
boolean doEnable = CdmStore.currentAuthentiationHasPermission(node,
RequiredPermissions.TAXON_EDIT);
+ if (!doEnable){
+ //check whether there are explicit TaxonNode rights
+ boolean taxonnodePermissionExists = false;
+ Collection<? extends GrantedAuthority> authorities = CdmStore.getCurrentAuthentiation().getAuthorities();
+ for (GrantedAuthority grantedAuthority: authorities){
+ if (grantedAuthority.getAuthority().startsWith("TAXONNODE")){
+ taxonnodePermissionExists = true;
+ }
+ }
+ if (!taxonnodePermissionExists){
+ doEnable = true;
+ }
+ }
//TODO: differ between the views
this.isEnabled = doEnable;
showViewer(structuredSelection, activePart, viewer);
if (viewer instanceof DetailsViewerE4){
- ((DetailsViewerE4)viewer).setDetailsEnabled(isEnabled());
+// ((DetailsViewerE4)viewer).setDetailsEnabled(isEnabled());
}
package eu.etaxonomy.taxeditor.view.e4.details;
+import java.util.Collection;
import java.util.EnumSet;
import java.util.HashSet;
import java.util.Set;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreeNode;
import org.eclipse.swt.SWT;
+import org.springframework.security.core.GrantedAuthority;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
if (hasPermission){
for (TaxonNode node: nodes){
hasPermission &= CdmStore.currentAuthentiationHasPermission(node, requiredCrud);
+ if (!hasPermission){
+ //check whether there are explicit TaxonNode rights
+ boolean taxonnodePermissionExists = false;
+ Collection<? extends GrantedAuthority> authorities = CdmStore.getCurrentAuthentiation().getAuthorities();
+ for (GrantedAuthority grantedAuthority: authorities){
+ if (grantedAuthority.getAuthority().startsWith("TAXONNODE")){
+ taxonnodePermissionExists = true;
+ }
+ }
+ if (!taxonnodePermissionExists){
+ hasPermission = true;
+ }
+ }
}
}
detailsEnabled = hasPermission;