mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-05-24 02:24:39 +00:00
Test adding non-existant LDAP user to a group
This is to tickle my suspicion of the bug as reported by Thorsten Marquardt in https://sourceforge.net/p/davical/mailman/message/58766531/ with this error message reported: Exception [0] ldap_get_attributes(): Argument #2 ($entry) must be of type LDAP\ResultEntry, false given At line 718 of /usr/share/davical-master/inc/drivers_ldap.php You need to look in 3da860e5d5e732c2dedb62a73c76608a2b7098a4 for that line number as I've just made some improvements to the code. I have also improved the SQL to check if the users have been added, and discovered that the result file *did not* have them. This test was failing due to the test config file looking for memberUid, not member. Also, fix that.
This commit is contained in:
parent
629789612e
commit
c273b38234
@ -116,14 +116,14 @@ SQL Query 1 Result:
|
||||
|
||||
SQL Query 2 Result:
|
||||
group_name: >gON_ldap_group1<
|
||||
user_name: >NULL<
|
||||
users: >gON_ldap1<
|
||||
|
||||
group_name: >gON_ldap_group2<
|
||||
user_name: >NULL<
|
||||
users: >gON_ldap1, gON_ldap2, gON_ldap4<
|
||||
|
||||
group_name: >gON_ldap_group3<
|
||||
user_name: >NULL<
|
||||
users: >gON_ldap1, gON_ldap3<
|
||||
|
||||
group_name: >gON_ldap_group4<
|
||||
user_name: >NULL<
|
||||
users: >NULL<
|
||||
|
||||
|
||||
@ -78,7 +78,7 @@ for my $username (qw/gON_ldap3 gON_ldap4/) {
|
||||
|
||||
make_group($ldap, 'gON_ldap_group1', $users{gON_ldap1});
|
||||
make_group($ldap, 'gON_ldap_group2', $users{gON_ldap1}, $users{gON_ldap2},
|
||||
$users{gON_ldap4});
|
||||
$users{gON_ldap4}, "cn=non_existant1,$users");
|
||||
make_group($ldap, 'gON_ldap_group3', $users{gON_ldap1}, $users{gON_ldap3});
|
||||
make_group($ldap, 'gON_ldap_group4');
|
||||
|
||||
@ -106,7 +106,14 @@ sub make_group {
|
||||
|
||||
ENDPERL
|
||||
|
||||
SCRIPT=../scripts/cron-sync-ldap.php regression_ldap.host
|
||||
BEGINAPPCONF
|
||||
<?php
|
||||
|
||||
// We want to test using the member field to contain our list of members.
|
||||
$c->authenticate_hook['config']['group_mapping_field']['members'] = 'member';
|
||||
ENDAPPCONF
|
||||
|
||||
SCRIPT=php -d include_path=$(pwd) ../scripts/cron-sync-ldap.php regression_ldap.host
|
||||
|
||||
# Testing logging in as one of the users - should work.
|
||||
TYPE=PROPFIND
|
||||
@ -136,12 +143,13 @@ ENDQUERY
|
||||
|
||||
# Check group membership matches above.
|
||||
QUERY
|
||||
SELECT grp_u.username AS group_name, usr_u.username AS user_name
|
||||
SELECT grp_u.username AS group_name, string_agg(usr_u.username, ', ' ORDER BY usr_u.username) AS users
|
||||
FROM principal AS grp_p
|
||||
left join group_member ON (grp_p.principal_id = group_member.group_id)
|
||||
left join principal AS usr_p ON (group_member.member_id = usr_p.principal_id)
|
||||
left join usr AS usr_u ON (usr_p.user_no = usr_u.user_no)
|
||||
left join usr AS grp_u ON (grp_p.user_no = grp_u.user_no)
|
||||
LEFT JOIN group_member ON (grp_p.principal_id = group_member.group_id)
|
||||
LEFT JOIN usr AS grp_u ON (grp_p.user_no = grp_u.user_no)
|
||||
LEFT JOIN principal AS usr_p ON (group_member.member_id = usr_p.principal_id)
|
||||
LEFT JOIN usr AS usr_u ON (usr_p.user_no = usr_u.user_no)
|
||||
WHERE grp_u.username LIKE 'gON_ldap_group%'
|
||||
ORDER BY group_name, user_name;
|
||||
GROUP BY group_name
|
||||
ORDER BY group_name;
|
||||
ENDQUERY
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user