#! /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();

