catch up with branch development

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/IDataMart.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/IDataMart.java
index aeb4cfb..27213e3 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/IDataMart.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/datamart/IDataMart.java
@@ -15,7 +15,8 @@
 package org.eclipse.osbp.ui.api.datamart;
 
 import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 import org.eclipse.osbp.ui.api.user.IUser;
 
@@ -34,10 +35,11 @@
 	 IUser getUser();
 	 ArrayList<DatamartFilter> getFilters();
 	 void renderFilters();
-	 HashMap<String, EType> getIdMap();
-	 HashMap<String, EType> getTypesMap();
-	 HashMap<String, String> getTypesProp();
-	 ArrayList<DatamartPrimary<?>> getPrimaryList();
+	 Map<String, EType> getIdMap();
+	 Map<String, String> getAliasMap();
+	 Map<String, EType> getTypesMap();
+	 Map<String, String> getTypesProp();
+	 List<DatamartPrimary<?>> getPrimaryList();
 	 void computeConditions();
 	 void clearCache();
 	 String getResultAttribute(String attributeName);
diff --git a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/useraccess/AbstractAuthorization.java b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/useraccess/AbstractAuthorization.java
index 70894bf..eafdb5d 100644
--- a/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/useraccess/AbstractAuthorization.java
+++ b/org.eclipse.osbp.ui.api/src/org/eclipse/osbp/ui/api/useraccess/AbstractAuthorization.java
@@ -21,12 +21,16 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * AbstractAuthorization holds permissions per role associated to one position.
  * Grants and vetoes can be queried. Grants apply to object level, vetoes to attributes and relationships.
  * Conflicts arising from merged roles of a position are resolved favoring the more generous grant and the less restrictive veto  
  */
 public abstract class AbstractAuthorization {
+	private static final Logger LOGGER = LoggerFactory.getLogger(AbstractAuthorization.class);
 
 	/** The role permissions. */
 	private HashMap<String, List<Set<Permission>>> rolePermissions = new HashMap<>();
@@ -71,28 +75,36 @@
 	}
 
 	public boolean isApplicableGrant(Group group, Action action, String descriptor) {
+		LOGGER.debug("isApplicableGrant group:{} action:{} descriptor:{}", group, action, descriptor);
 		for(String roleName : getRoles()) {
 			for(Set<Permission> permissionSet : getAuthorizationGroups().get(roleName)) {
 				for(Permission permission:permissionSet) {
+					LOGGER.trace("role:{} permission:{}", roleName, permission);
 					if(permission.clazz.equals(descriptor) && permission.group == group && permission.action.getWeight() >= action.getWeight()) {
+						LOGGER.debug("grant result {}", true);
 						return true;
 					}
 				}
 			}
 		}
+		LOGGER.debug("grant result {}", false);
 		return false;
 	}
 
 	public boolean isApplicableVeto(Group group, Action action, String descriptor, String property) {
+		LOGGER.debug("isApplicableVeto group:{} action:{} descriptor:{} property:{}", group, action, descriptor, property);
 		for(String roleName : getRoles()) {
 			for(Set<Permission> permissionSet : getAuthorizationGroups().get(roleName)) {
 				for(Permission permission:permissionSet) {
+					LOGGER.trace("role:{} permission:{}", roleName, permission);
 					if(permission.clazz.equals(descriptor) && permission.attribute != null && permission.attribute.equals(property) && permission.group == group && permission.action.getWeight() < action.getWeight()) {
+						LOGGER.debug("veto result {}", false);
 						return false;
 					}
 				}
 			}
 		}
+		LOGGER.debug("veto result {}", true);
 		return true;
 	}