Implemented variable substitution in user & group handling.
This commit is contained in:
parent
6bddba73ef
commit
50fb75ba64
23
pkgtool.pm
23
pkgtool.pm
|
@ -3330,15 +3330,20 @@ sub handle_directory ($$$$$$)
|
|||
return 1;
|
||||
}
|
||||
|
||||
sub handle_group ($$$)
|
||||
sub handle_group ($$$$)
|
||||
{
|
||||
my ($pkg, $counters, $update) = @_;
|
||||
my ($pkg, $vars, $counters, $update) = @_;
|
||||
|
||||
my $name = $$pkg{name};
|
||||
my $hostname = $ENV{'COMPUTERNAME'};
|
||||
my $groupname = $$pkg{'group'};
|
||||
my $members = $$pkg{'members'};
|
||||
$members = [] unless defined $members;
|
||||
if (defined $vars) {
|
||||
$groupname = substitute_variables($vars, $groupname, 0, undef, 'global')
|
||||
if $groupname =~ /%[^%]*%/o;
|
||||
$members = [map { $_ =~ /%[^%]*%/o ? substitute_variables($vars, $_, 0, undef, 'global') : $_ } @$members];
|
||||
}
|
||||
|
||||
my $sourcefile = $ENV{systemroot}.'\\System32\\wbem\\wmic.exe';
|
||||
my $paramlist = ['path', 'win32_groupuser', 'where', '(groupcomponent="win32_group.name=\''.$groupname.'\',domain=\''.$hostname.'\'")'];
|
||||
|
@ -3402,9 +3407,9 @@ sub handle_group ($$$)
|
|||
return 1;
|
||||
}
|
||||
|
||||
sub handle_user ($$$)
|
||||
sub handle_user ($$$$)
|
||||
{
|
||||
my ($pkg, $counters, $update) = @_;
|
||||
my ($pkg, $vars, $counters, $update) = @_;
|
||||
|
||||
my $name = $$pkg{name};
|
||||
my $username = $$pkg{'user'};
|
||||
|
@ -3419,6 +3424,12 @@ sub handle_user ($$$)
|
|||
$fullname = '' unless defined $fullname;
|
||||
my $pwexpires = $$pkg{'pwexpires'};
|
||||
$pwexpires = defined $pwexpires && $pwexpires;
|
||||
if (defined $vars) {
|
||||
$username = substitute_variables($vars, $username, 0, undef, 'global')
|
||||
if $username =~ /%[^%]*%/o;
|
||||
$fullname = substitute_variables($vars, $fullname, 0, undef, 'global')
|
||||
if $fullname =~ /%[^%]*%/o;
|
||||
}
|
||||
|
||||
my $sourcefile = $ENV{systemroot}.'\\System32\\wbem\\wmic.exe';
|
||||
my $paramlist = ['useraccount', 'where', '"name=\''.$username.'\'"'];
|
||||
|
@ -3559,10 +3570,10 @@ sub handle_pkg ($$$$$$)
|
|||
}
|
||||
|
||||
if (defined $$pkg{'user'}) {
|
||||
return handle_user($pkg, $counters, $update);
|
||||
return handle_user($pkg, $vars, $counters, $update);
|
||||
}
|
||||
if (defined $$pkg{'group'}) {
|
||||
return handle_group($pkg, $counters, $update);
|
||||
return handle_group($pkg, $vars, $counters, $update);
|
||||
}
|
||||
if (defined $$pkg{'directory'}) {
|
||||
return handle_directory($config, $pkg, $vars, $base_directory, $counters, $update);
|
||||
|
|
Loading…
Reference in a new issue