Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bestpractical/rt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorsunnavy <sunnavy@bestpractical.com>2022-03-22 18:51:51 +0300
committersunnavy <sunnavy@bestpractical.com>2022-03-22 20:45:41 +0300
commitdeb679070e44788fc9010bbaffedb6d9b46a81bd (patch)
tree8496fa412d7d1ee9918c7926a10d629553b43a30 /t
parentdb80eeb350da0a8240ecb19887265c1dfc4bd2a9 (diff)
Test user/group Disabled field in LDAP import
Diffstat (limited to 't')
-rw-r--r--t/ldapimport/group-import.t34
-rw-r--r--t/ldapimport/user-import.t34
2 files changed, 60 insertions, 8 deletions
diff --git a/t/ldapimport/group-import.t b/t/ldapimport/group-import.t
index b87bc97c0d..fc3f97bd92 100644
--- a/t/ldapimport/group-import.t
+++ b/t/ldapimport/group-import.t
@@ -54,6 +54,16 @@ $ldap->add(
],
);
+my $entry = {
+ cn => "testdisabled",
+ members => ["uid=testuser1,ou=foo,dc=bestpractical,dc=com"],
+ objectClass => 'Group',
+ disabled => 1,
+};
+$ldap->add( "cn=testdisabled,ou=groups,dc=bestpractical,dc=com", attr => [ %$entry ] );
+push @ldap_group_entries, $entry;
+
+
RT->Config->Set('LDAPHost',"ldap://localhost:$ldap_port");
RT->Config->Set('LDAPMapping',
{Name => 'uid',
@@ -74,10 +84,17 @@ for my $entry (@ldap_user_entries) {
RT->Config->Set('LDAPGroupBase','dc=bestpractical,dc=com');
RT->Config->Set('LDAPGroupFilter','(objectClass=Group)');
-RT->Config->Set('LDAPGroupMapping',
- {Name => 'cn',
- Member_Attr => 'members',
- });
+RT->Config->Set(
+ 'LDAPGroupMapping',
+ {
+ Name => 'cn',
+ Member_Attr => 'members',
+ Disabled => sub {
+ my %args = @_;
+ return $args{ldap_entry}->get_value('disabled') ? 1 : 0;
+ },
+ }
+);
# confirm that we skip the import
ok( $importer->import_groups() );
@@ -89,6 +106,15 @@ ok( $importer->import_groups() );
import_group_members_ok( members => 'dn' );
+my $group = RT::Group->new($RT::SystemUser);
+$group->LoadUserDefinedGroup('testdisabled');
+ok( $group->Disabled, 'Group testdisabled is disabled' );
+
+$ldap->modify( "cn=testdisabled,ou=groups,dc=bestpractical,dc=com", replace => { disabled => 0 } );
+ok( $importer->import_groups( import => 1 ), "imported groups" );
+$group->LoadUserDefinedGroup('testdisabled');
+ok( !$group->Disabled, 'Group testdisabled is enabled' );
+
RT->Config->Set('LDAPGroupMapping',
{Name => 'cn',
Member_Attr => 'memberUid',
diff --git a/t/ldapimport/user-import.t b/t/ldapimport/user-import.t
index 4092a1c1cb..c4f6a5934c 100644
--- a/t/ldapimport/user-import.t
+++ b/t/ldapimport/user-import.t
@@ -41,15 +41,34 @@ $ldap->add(
],
);
+$ldap->add(
+ "uid=testdisabled,ou=foo,dc=bestpractical,dc=com",
+ attr => [
+ cn => "Disabled user",
+ mail => "testdisabled\@invalid.tld",
+ uid => 'testdisabled',
+ objectclass => 'User',
+ disabled => 1,
+ ],
+);
RT->Config->Set('LDAPHost',"ldap://localhost:$ldap_port");
RT->Config->Set('LDAPOptions', [ port => $ldap_port ]);
-RT->Config->Set('LDAPMapping',
- {Name => 'uid',
- EmailAddress => 'mail',
- RealName => 'cn'});
+RT->Config->Set(
+ 'LDAPMapping',
+ {
+ Name => 'uid',
+ EmailAddress => 'mail',
+ RealName => 'cn',
+ Disabled => sub {
+ my %args = @_;
+ return $args{ldap_entry}->get_value('disabled') ? 1 : 0;
+ },
+ }
+);
RT->Config->Set('LDAPBase','ou=foo,dc=bestpractical,dc=com');
RT->Config->Set('LDAPFilter','(objectClass=User)');
+RT->Config->Set('LDAPUpdateUsers', 1);
# check that we don't import
ok($importer->import_users());
@@ -81,6 +100,13 @@ ok(!$user->Id);
$user->Load( 9000 );
ok(!$user->Id);
+$user->Load('testdisabled');
+ok( $user->Disabled, 'User testdisabled is disabled' );
+$ldap->modify( "uid=testdisabled,ou=foo,dc=bestpractical,dc=com", replace => { disabled => 0 } );
+ok( $importer->import_users( import => 1 ) );
+$user->Load('testdisabled');
+ok( !$user->Disabled, 'User testdisabled is enabled' );
+
# can't unbind earlier or the server will die
$ldap->unbind;