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;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub handle_group ($$$)
|
sub handle_group ($$$$)
|
||||||
{
|
{
|
||||||
my ($pkg, $counters, $update) = @_;
|
my ($pkg, $vars, $counters, $update) = @_;
|
||||||
|
|
||||||
my $name = $$pkg{name};
|
my $name = $$pkg{name};
|
||||||
my $hostname = $ENV{'COMPUTERNAME'};
|
my $hostname = $ENV{'COMPUTERNAME'};
|
||||||
my $groupname = $$pkg{'group'};
|
my $groupname = $$pkg{'group'};
|
||||||
my $members = $$pkg{'members'};
|
my $members = $$pkg{'members'};
|
||||||
$members = [] unless defined $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 $sourcefile = $ENV{systemroot}.'\\System32\\wbem\\wmic.exe';
|
||||||
my $paramlist = ['path', 'win32_groupuser', 'where', '(groupcomponent="win32_group.name=\''.$groupname.'\',domain=\''.$hostname.'\'")'];
|
my $paramlist = ['path', 'win32_groupuser', 'where', '(groupcomponent="win32_group.name=\''.$groupname.'\',domain=\''.$hostname.'\'")'];
|
||||||
|
@ -3402,9 +3407,9 @@ sub handle_group ($$$)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub handle_user ($$$)
|
sub handle_user ($$$$)
|
||||||
{
|
{
|
||||||
my ($pkg, $counters, $update) = @_;
|
my ($pkg, $vars, $counters, $update) = @_;
|
||||||
|
|
||||||
my $name = $$pkg{name};
|
my $name = $$pkg{name};
|
||||||
my $username = $$pkg{'user'};
|
my $username = $$pkg{'user'};
|
||||||
|
@ -3419,6 +3424,12 @@ sub handle_user ($$$)
|
||||||
$fullname = '' unless defined $fullname;
|
$fullname = '' unless defined $fullname;
|
||||||
my $pwexpires = $$pkg{'pwexpires'};
|
my $pwexpires = $$pkg{'pwexpires'};
|
||||||
$pwexpires = defined $pwexpires && $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 $sourcefile = $ENV{systemroot}.'\\System32\\wbem\\wmic.exe';
|
||||||
my $paramlist = ['useraccount', 'where', '"name=\''.$username.'\'"'];
|
my $paramlist = ['useraccount', 'where', '"name=\''.$username.'\'"'];
|
||||||
|
@ -3559,10 +3570,10 @@ sub handle_pkg ($$$$$$)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined $$pkg{'user'}) {
|
if (defined $$pkg{'user'}) {
|
||||||
return handle_user($pkg, $counters, $update);
|
return handle_user($pkg, $vars, $counters, $update);
|
||||||
}
|
}
|
||||||
if (defined $$pkg{'group'}) {
|
if (defined $$pkg{'group'}) {
|
||||||
return handle_group($pkg, $counters, $update);
|
return handle_group($pkg, $vars, $counters, $update);
|
||||||
}
|
}
|
||||||
if (defined $$pkg{'directory'}) {
|
if (defined $$pkg{'directory'}) {
|
||||||
return handle_directory($config, $pkg, $vars, $base_directory, $counters, $update);
|
return handle_directory($config, $pkg, $vars, $base_directory, $counters, $update);
|
||||||
|
|
Loading…
Reference in a new issue