Hello,
Je viens de tester, et ca marche. :-)
Par contre, j'ai utilisé la function unless pur avoir la bonne condition avec havegroup, c'est correct ??
voila resultat :
# Are we authenticated yet ?
if (open (IN,"/usr/syno/synoman/webman/modules/authenticate.cgi|")) {
$user=<IN>;
chop($user);
close(IN);
}
# test if member of the group
sub havegroup {
my $user=shift;
my $whichgroup=shift;
foreach my $groupname (usergroups($user)) {
return 1 if $whichgroup eq $groupname;
}
return undef;
}
# Find the group
sub usergroups {
my $user = shift;
my @groups = scalar getgrgid((getpwnam $user)[3]); # init group list to user main group
while (my ($name, $users) = (getgrent)[0, -1]) {
$users =~ /b$userb/ and push @groups, $name
}
return @groups;
}
# if not in administrator groups ...no authentication...so, bye-bye
unless (havegroup($user, 'administrators')) {
print "<HTML><HEAD><TITLE>Access forbidden</TITLE></HEAD><BODY>You need to be part of the administrators group to view this webpage.</BODY></HTML>n";
die;
}
C'est correct ?