reply := {}
+# Test fallthrough processing.
+if (!%ldap.profile('cn=nested2,ou=profiles,dc=example,dc=com')) {
+ test_fail
+}
+
+# fallthrough condition should mean only the second profile will be applied
+if (reply.Reply-Message != 'Good Day') {
+ test_fail
+}
+
+reply := {}
+
# Re-run the above with a different user name - the profile with "Guten Tag"
# as the reply message has a condition of User-Name == bob
&User-Name := 'john'
reply := {}
+if (!%ldap.profile('cn=nested2,ou=profiles,dc=example,dc=com')) {
+ test_fail
+}
+
+# fallthrough condition should mean only the first profile is applied
+if (reply.Reply-Message != 'Guten Tag') {
+ test_fail
+}
+
+reply := {}
+
test_pass
dn: cn=nested,ou=profiles,dc=example,dc=com
objectClass: freeradiusPolicy
-objectClass: radiusprofile
cn: nested
dn: cn=child1,cn=nested,ou=profiles,dc=example,dc=com
radiusAttribute: reply.Reply-Message = 'Buna Ziua'
radiusProfilePriority: 3
+dn: cn=nested2,ou=profiles,dc=example,dc=com
+objectClass: freeradiusPolicy
+cn: nested2
+
+dn: cn=child1,cn=nested2,ou=profiles,dc=example,dc=com
+objectClass: freeradiusPolicy
+objectClass: radiusprofile
+cn: child1
+radiusAttribute: reply.Reply-Message := 'Guten Tag'
+radiusProfilePriority: 1
+radiusProfileFallthrough: User-Name == 'bob'
+
+dn: cn=child2,cn=nested2,ou=profiles,dc=example,dc=com
+objectClass: freeradiusPolicy
+objectClass: radiusprofile
+cn: child2
+radiusAttribute: reply.Reply-Message := 'Good Day'
+radiusProfilePriority: 2
+
dn: uid=adminuser,ou=people,dc=example,dc=com
objectClass: inetOrgPerson
uid: adminuser