#! /usr/bin/perl # # Copyright (c) 2001 SuSE GmbH Nuernberg, Germany. All rights reserved. # # # $Id: create_certificate.pl,v 1.1 2003/07/24 08:52:42 varkoly Exp $ # use strict; #use warnings; use lib qw(/srv/www/lib); use Net::LDAP; use Encode; use Utils; my $passwd = shift; my $gidnumber = shift || 102; my ($basedn, $ldaphost, $ldapport) = parse_file("/etc/openldap/ldap.conf", "BASE", "HOST", "PORT"); my $ldap = Net::LDAP->new('ldap', port=>389, version => 3); my $mess = $ldap->bind( dn => "uid=cyrus,$basedn", password => $passwd ); $mess = $ldap->search( base => $basedn, scope => "one", filter => "(&(gidNumber=$gidnumber)(objectclass=SuSESchoolAccount)(!(alias=*)))", attrs => ['givenName','sn','uid'] ); foreach my $entry ( $mess->entries ) { my $gn = $entry->get_value('givenName'); my $sn = $entry->get_value('sn'); my $uid = $entry->get_value('uid'); my $alias = to_ascii("$gn.$sn"); $alias =~ s/ //g; print "Bearbeite uid: $uid, $gn $sn: Alias: $alias\n"; my $submes = $ldap->search( base => $basedn, scope => "one", filter => "(alias=$alias)", attrs => ['uid'] ); if( $submes->count() eq 0 ) { $ldap->modify( dn => $entry->dn, add => { 'alias' => $alias} ); } else { my $auid = $submes->(0)->get_value('uid'); print " ERRORRR Alias already exist by uid: $auid\n"; } } $ldap->unbind();