From 3451b56329e68cd061fd30051585490b7f8ed959 Mon Sep 17 00:00:00 2001 From: Daniel Berteaud Date: Thu, 19 Jul 2012 21:05:21 +0200 Subject: [PATCH] =?UTF-8?q?Utilise=20esmith::AccountsDB=20pour=20la=20g?= =?UTF-8?q?=C3=A9n=C3=A9ration=20des=20scripts=20netlogon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- root/sbin/e-smith/generate_netlogon | 39 +++-------------------------- 1 file changed, 4 insertions(+), 35 deletions(-) diff --git a/root/sbin/e-smith/generate_netlogon b/root/sbin/e-smith/generate_netlogon index 9669553..c86d6de 100755 --- a/root/sbin/e-smith/generate_netlogon +++ b/root/sbin/e-smith/generate_netlogon @@ -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; -} -