Utilise esmith::AccountsDB pour la génération des scripts netlogon
This commit is contained in:
parent
22fca83f58
commit
3451b56329
|
@ -17,7 +17,7 @@ die "Time argument missing.\n" unless defined ($time);
|
|||
package esmith;
|
||||
|
||||
use strict;
|
||||
|
||||
use esmith::AccountsDB;
|
||||
use esmith::util;
|
||||
|
||||
BEGIN
|
||||
|
@ -33,9 +33,8 @@ BEGIN
|
|||
|
||||
esmith::util::setRealToEffective ();
|
||||
|
||||
my %accounts;
|
||||
tie %accounts, 'esmith::config', '/home/e-smith/db/accounts';
|
||||
|
||||
my $a = esmith::AccountsDB->open_ro() ||
|
||||
die "Couldn't open AccountsDB\n";
|
||||
|
||||
# ------------------------------------------------
|
||||
# Open and read in the template netlogon.bat file.
|
||||
|
@ -84,7 +83,7 @@ foreach $line ( @infile )
|
|||
{
|
||||
if ( !$activelevels[ $level ] )
|
||||
{
|
||||
$activelevels[ $level ] = isInGroup($curUser, $group);
|
||||
$activelevels[ $level ] = $a->is_user_in_group($curUser, $group);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -207,33 +206,3 @@ chmod ( 0744, "$netlogonFile" );
|
|||
|
||||
exit (0);
|
||||
|
||||
# --------------------------------------------------
|
||||
# Subroutine to check if a given user is in a group:
|
||||
# --------------------------------------------------
|
||||
|
||||
sub isInGroup($$)
|
||||
{
|
||||
my ($user, $group) = @_;
|
||||
|
||||
my $value = $accounts{$group};
|
||||
|
||||
if ( defined ($value) )
|
||||
{
|
||||
my ($type, %properties) = split (/\|/, $value);
|
||||
if ($type eq 'group')
|
||||
{
|
||||
my @members = split (/,/, $properties {'Members'});
|
||||
my $member;
|
||||
# TODO: grep (/^$user$/, @members)
|
||||
foreach $member ( @members )
|
||||
{
|
||||
if ( $member eq $user )
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue