#!/usr/bin/perl # # $Id: group.txt,v 1.1 2003/04/08 09:57:46 johjen Exp $ use Data::Dumper; use Unicode::String qw (utf8 latin1); require '/usr/share/webmin/web-lib.pl'; use vars qw(%text %config %in $tb $cb); @scriptdirs = qw(/etc/webmin/ldap-users /usr/share/webmin/ldap-users .); require "ldap-users.pl"; sub min_add_group($$$$$){ ($gid, $gidNumber, $rootpw, $rootdn, $basedn) = @_; $ldap->bind($rootdn, password => $rootpw); $entry = Net::LDAP::Entry->new(); $entry->dn("cn=$gid,ou=Group,$basedn"); $entry->add( objectclass => 'posixGroup', cn => $gid, gidNumber => $gidNumber, ); } sub print_ldap_error($$) { ($errormsg, $result) = @_; print "
"; print Dumper($result->error()); print ""; } sub ldap_get_max_gid($){ ($basedn) = @_; $mesg = $ldap->search (base => "ou=Group,$basedn", filter => "objectClass=posixGroup" ); $maxval = 10000; foreach $entry ($mesg->all_entries()){ my $val = $entry->get_value('gidNumber'); $maxval = $val if ($val > $maxval); } return $maxval++; } sub min_create_dir($$$){ my ($homedir, $uidNumber, $gidNumber) = @_; return undef unless $gidNumber; return run_script("createhomedir", $homedir, $uidNumber, $gidNumber); } sub run_script { my ($scriptname, @args) = @_; my $done = 0; my $retval = 1; print "
\n"; for my $scriptdir (@scriptdirs) { my $path = "$scriptdir/$scriptname"; if ( -x $path) { # from system(), 0 means success. invert before returning it. $retval = ! system($path, @args); $done = 1; last; } } if ( ! $done ) { print($text{'error'}.": Unable to find any executable ". "script $scriptname in ", join(" ", @scriptdirs), ".\n"); $retval = undef undef; } print "\n"; return $retval; } &init_config(); &ReadParse(); &header($text{'title1'} ,"", undef, 1); print "