code: private boolean propagationAllowed(final AbstractNode thisNode, final RelationshipInterface rel, final SchemaRelationshipNode.Direction propagationDirection, final boolean doLog) {
  
  		// early exit
  		if (propagationDirection.equals(SchemaRelationshipNode.Direction.Both)) {
  			return true;
  		}
  
  		// early exit
  		if (propagationDirection.equals(SchemaRelationshipNode.Direction.None)) {
  			return false;
  		}
  
  		final String sourceNodeId = rel.getSourceNode().getUuid();
  		final String thisNodeId   = thisNode.getUuid();
  
  		if (sourceNodeId.equals(thisNodeId)) {
  
  			// evaluation WITH the relationship direction
  			switch (propagationDirection) {
  
  				case Out:
  					return false;
  
  				case In:
  					return true;
  			}
  
  		} else {
  
  			// evaluation AGAINST the relationship direction
  			switch (propagationDirection) {
  
  				case Out:
  					return true;
  
  				case In:
  					return false;
  			}
  		}
  
  		return false;
  	}
docs: Determines whether propagation of permissions is allowed along the given relationship.
  
  CAUTION: this is a complex situation.
  
  - we need to determine the EVALUATION DIRECTION, which can be either WITH or AGAINST the RELATIONSHIP DIRECTION
  - if we are looking at the START NODE of the relationship, we are evaluating WITH the relationship direction
  - if we are looking at the END NODE of the relationship, we are evaluating AGAINST the relationship direction
  - the result obtained by the above check must be compared to the PROPAGATION DIRECTION which can be either
  SOURCE_TO_TARGET or TARGET_TO_SOURCE
  - a propagation direction of SOURCE_TO_TARGET implies that the permissions of the SOURCE NODE can be applied
  to the TARGET NODE, so if we are evaluating AGAINST the relationship direction, we are good to go
  - a propagation direction of TARGET_TO_SOURCE implies that the permissions of that TARGET NODE can be applied
  to the SOURCE NODE, so if we are evaluating WITH the relationship direction, we are good to go
  
  @param thisNode
  @param rel
  @param propagationDirection
  
  @return whether permission resolution can continue along this relationship