if (!xlat_ctx->dn) xlat_ctx->dn = rlm_find_user_dn_cached(request);
if (!xlat_ctx->dn) RETURN_UNLANG_FAIL;
+ RDEBUG3("Entered GROUP_XLAT_FIND_USER with user DN \"%s\"", xlat_ctx->dn);
if (inst->group.obj_membership_filter) {
REPEAT_LDAP_MEMBEROF_XLAT_RESULTS;
+ RDEBUG3("Checking for user in group objects");
if (rlm_ldap_check_groupobj_dynamic(p_result, request, xlat_ctx) == UNLANG_ACTION_PUSHED_CHILD) {
xlat_ctx->status = GROUP_XLAT_MEMB_FILTER;
return UNLANG_ACTION_PUSHED_CHILD;
case GROUP_XLAT_MEMB_FILTER:
if (xlat_ctx->found) RETURN_UNLANG_OK;
+ RDEBUG3("Entered GROUP_XLAT_MEMB_FILTER with user DN \"%s\"", xlat_ctx->dn);
if (inst->group.userobj_membership_attr) {
REPEAT_LDAP_MEMBEROF_XLAT_RESULTS;
if (rlm_ldap_check_userobj_dynamic(p_result, request, xlat_ctx) == UNLANG_ACTION_PUSHED_CHILD) {
FALL_THROUGH;
case GROUP_XLAT_MEMB_ATTR:
+ RDEBUG3("Entered GROUP_XLAT_MEMB_ATTR with user DN \"%s\"", xlat_ctx->dn);
if (xlat_ctx->found) RETURN_UNLANG_OK;
break;
}
#
# Resolve using group name attribute
#
+
+# John is a member of group foo, via a "member" attribute in that group
+# he is not a member via the "memberOf" attribute in his user entry!
if !(%ldap.group("foo")) {
test_fail
}