mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

dugan
16.59.2007 f7e139bc4026245dddda55b9f1e713f168b8e786
opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/UserAttr.java
@@ -323,6 +323,12 @@
        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)
@@ -332,9 +338,9 @@
                    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 {
@@ -362,7 +368,8 @@
                }
            }
        }
        return matched.getRet(type, undefined);
    }
    return matched.getRet(type, undefined);
    }
    /**
@@ -405,7 +412,7 @@
                break;
            }
            case GROUPDN: {
                result=GroupDN.evaluate(e, evalCtx, attributeType);
                result=GroupDN.evaluate(e, evalCtx, attributeType, null);
                break;
            }
        }