| | |
| | | int numLevels=parentInheritance.getNumLevels(); |
| | | int[] levels=parentInheritance.getLevels(); |
| | | AttributeType attrType=parentInheritance.getAttributeType(); |
| | | DN baseDN=parentInheritance.getBaseDN(); |
| | | if(baseDN != null) { |
| | | if (evalCtx.getResourceEntry().hasAttribute(attrType)) |
| | | matched=GroupDN.evaluate(evalCtx.getResourceEntry(), |
| | | evalCtx,attrType, baseDN); |
| | | } else { |
| | | for(int i=0;((i < numLevels) && !stop); i++ ) { |
| | | //The ROLEDN keyword will always enter this statement. The others |
| | | //might. For the add operation, the resource itself (level 0) |
| | |
| | | undefined=true; |
| | | } else if (evalCtx.getResourceEntry().hasAttribute(attrType)) { |
| | | matched = |
| | | evalEntryAttr(evalCtx.getResourceEntry(), |
| | | evalCtx,attrType); |
| | | if(matched.equals(EnumEvalResult.TRUE)) |
| | | evalEntryAttr(evalCtx.getResourceEntry(), |
| | | evalCtx,attrType); |
| | | if(matched.equals(EnumEvalResult.TRUE)) |
| | | stop=true; |
| | | } |
| | | } else { |
| | |
| | | } |
| | | } |
| | | } |
| | | return matched.getRet(type, undefined); |
| | | } |
| | | return matched.getRet(type, undefined); |
| | | } |
| | | |
| | | /** |
| | |
| | | break; |
| | | } |
| | | case GROUPDN: { |
| | | result=GroupDN.evaluate(e, evalCtx, attributeType); |
| | | result=GroupDN.evaluate(e, evalCtx, attributeType, null); |
| | | break; |
| | | } |
| | | } |