allow specific expires dates for groups in userImport.pl

This commit is contained in:
Doug Bell 2011-06-20 18:26:39 -05:00
parent 07d2c38dbc
commit d0077bdcec
2 changed files with 28 additions and 2 deletions

View file

@ -1,5 +1,6 @@
7.10.19 7.10.19
- Added ability to pass caller assetId to RenderThingMacro - Added ability to pass caller assetId to RenderThingMacro
- Allow specific expirations for groups in userImport.pl
7.10.18 7.10.18
- fixed #12138: Version tag gets create by entering and direct leaving - fixed #12138: Version tag gets create by entering and direct leaving

View file

@ -82,7 +82,7 @@ if (!($^O =~ /^Win/i) && $> != 0 && !$override) {
print "Starting up..." unless ($quiet); print "Starting up..." unless ($quiet);
my $session = WebGUI::Session->open($webguiRoot,$configFile); my $session = WebGUI::Session->open($webguiRoot,$configFile);
$session->user({userId=>3}); $session->user({userId=>3});
open(FILE,"<".$usersFile); open(FILE,"<".$usersFile) || die("Could not open $usersFile for reading: $!");
print "OK\n" unless ($quiet); print "OK\n" unless ($quiet);
my $lineNumber = 0; my $lineNumber = 0;
@ -90,6 +90,7 @@ my @field;
my @profileFields = $session->db->buildArray("select fieldName from userProfileField"); my @profileFields = $session->db->buildArray("select fieldName from userProfileField");
while(my $line = <FILE>) { while(my $line = <FILE>) {
$lineNumber++; $lineNumber++;
chomp $line; chomp $line;
next next
if $line eq ''; if $line eq '';
@ -188,7 +189,25 @@ while(my $line = <FILE>) {
} }
if ($user{groups}) { if ($user{groups}) {
my @groups = split(/,/,$user{groups}); my @groups = split(/,/,$user{groups});
$u->addToGroups(\@groups,$user{expireOffset}); # Groups that have : in them have unique expiration dates
$u->addToGroups([grep { !/:/ } @groups],$user{expireOffset});
for my $groupDef ( grep { /:/ } @groups ) {
my ( $groupId, $expireDate ) = split /:/, $groupDef, 2;
# Calculate expiration offset
my $dtparse = DateTime::Format::Strptime->new(
pattern => '%F %T',
on_error => 'croak',
);
eval {
my $expireOffset = $dtparse->parse_datetime( $expireDate )->epoch - time;
$u->addToGroups( [$groupId], $expireOffset );
};
if ( $@ ) {
print "Could not add user $user{username} to group $groupId: $@";
}
}
} }
} }
} }
@ -354,6 +373,12 @@ Specify a comma separated list of WebGUI Group Ids that each loaded
user will be set to. It can be overridden in the import file for user will be set to. It can be overridden in the import file for
specific users. specific users.
You can specify a unique expiration date for a group by adding it
after the group ID, seperated by a colon. The date/time should be in
"YYYY-MM-DD HH:NN:SS" format.
groupId:2000-01-01 01:00:00,groupId2:2001-01-02 02:00:00
=item B<--ldapUrl uri> =item B<--ldapUrl uri>
Specify the URI used to connect to the LDAP server for authentication. Specify the URI used to connect to the LDAP server for authentication.