99 lines
3.2 KiB
Perl
99 lines
3.2 KiB
Perl
#-------------------------------------------------------------------
|
|
# WebGUI is Copyright 2001-2012 Plain Black Corporation.
|
|
#-------------------------------------------------------------------
|
|
# Please read the legal notices (docs/legal.txt) and the license
|
|
# (docs/license.txt) that came with this distribution before using
|
|
# this software.
|
|
#-------------------------------------------------------------------
|
|
# http://www.plainblack.com info@plainblack.com
|
|
#-------------------------------------------------------------------
|
|
|
|
use FindBin;
|
|
use strict;
|
|
use lib "$FindBin::Bin/../lib";
|
|
|
|
use WebGUI::Test;
|
|
use WebGUI::Session;
|
|
|
|
use WebGUI::User;
|
|
use WebGUI::Group;
|
|
|
|
use Test::More skip_all => 'Disabled until the test LDAP server is rejuvenated';
|
|
use Test::Deep;
|
|
|
|
my @ldapTests = (
|
|
{
|
|
dn => 'uid=Byron Hadley,o=shawshank',
|
|
comment => 'bad dn for group',
|
|
expect => 0,
|
|
},
|
|
{
|
|
dn => 'uid=Andy Dufresne,o=shawshank',
|
|
comment => 'good dn for group',
|
|
expect => 1,
|
|
},
|
|
{
|
|
dn => 'uid=Bogs Diamond,o=shawshank',
|
|
comment => 'another good dn for group',
|
|
expect => 1,
|
|
},
|
|
);
|
|
|
|
|
|
################################################################
|
|
#
|
|
# LDAP specific group properties
|
|
# These tests have to be done on an isolated group that will NEVER
|
|
# have getGroups called on it
|
|
#
|
|
################################################################
|
|
|
|
my $ldapProps = WebGUI::Test->getSmokeLDAPProps();
|
|
$session->db->setRow('ldapLink', 'ldapLinkId', $ldapProps, $ldapProps->{ldapLinkId});
|
|
my $ldap = WebGUI::LDAPLink->new($session, $ldapProps->{ldapLinkId});
|
|
is($ldap->getValue("ldapLinkId"),$ldapProps->{ldapLinkId},'ldap link created properly');
|
|
WebGUI::Test->addToCleanup($ldap);
|
|
|
|
my @shawshank;
|
|
|
|
foreach my $idx (0..$#ldapTests) {
|
|
$shawshank[$idx] = WebGUI::User->new($session, "new");
|
|
$shawshank[$idx]->username("shawshank$idx");
|
|
$shawshank[$idx]->authMethod("LDAP");
|
|
my $auth = $shawshank[$idx]->authInstance;
|
|
$auth->saveParams($shawshank[$idx]->getId,$shawshank[$idx]->authMethod,{
|
|
connectDN => $ldapTests[$idx]->{dn},
|
|
ldapConnection => $ldap->getValue("ldapLinkId"),
|
|
ldapUrl => $ldap->getValue("ldapUrl"),
|
|
});
|
|
}
|
|
|
|
WebGUI::Test->addToCleanup(@shawshank);
|
|
|
|
my $lGroup = WebGUI::Group->new($session, 'new');
|
|
|
|
$lGroup->ldapGroup('cn=Convicts,o=shawshank');
|
|
is($lGroup->ldapGroup(), 'cn=Convicts,o=shawshank', 'ldapGroup set and fetched correctly');
|
|
|
|
$lGroup->ldapGroupProperty('member');
|
|
is($lGroup->ldapGroupProperty(), 'member', 'ldapGroup set and fetched correctly');
|
|
|
|
$lGroup->ldapLinkId($ldapProps->{ldapLinkId});
|
|
is($lGroup->ldapLinkId(),$ldapProps->{ldapLinkId}, 'ldapLinkId set and fetched correctly');
|
|
|
|
is_deeply(
|
|
[ (map { $lGroup->hasLDAPUser($_->getId) } @shawshank) ],
|
|
[0, 1, 1],
|
|
'shawshank user 2, and 3 found in lGroup users from LDAP'
|
|
);
|
|
|
|
$lGroup->ldapRecursiveProperty('LDAP recursive property');
|
|
is($lGroup->ldapRecursiveProperty(), 'LDAP recursive property', 'ldapRecursiveProperty set and fetched correctly');
|
|
|
|
$lGroup->ldapRecursiveFilter('LDAP recursive filter');
|
|
is($lGroup->ldapRecursiveFilter(), 'LDAP recursive filter', 'ldapRecursiveFilter set and fetched correctly');
|
|
|
|
$lGroup->delete;
|
|
|
|
done_testing;
|
|
|