From 068362d8d9da18d28e5b1653313af5751c60e248 Mon Sep 17 00:00:00 2001
From: vernada <none@none>
Date: Wed, 16 Mar 2016 11:27:16 +0100
Subject: [PATCH] deprecated stuff

---
 ldap_NS_adduser.pl | 648 ---------------------------------------------
 1 file changed, 648 deletions(-)
 delete mode 100755 ldap_NS_adduser.pl

diff --git a/ldap_NS_adduser.pl b/ldap_NS_adduser.pl
deleted file mode 100755
index 05ba1d8..0000000
--- a/ldap_NS_adduser.pl
+++ /dev/null
@@ -1,648 +0,0 @@
-#!/usr/bin/perl
-
-#
-use strict;
-use warnings;
-
-#
-use Data::Dumper;
-use CGI qw/:standard start_ol/;
-use Config::IniFiles;
-use File::Basename;
-
-use Net::LDAP;
-use Data::Dumper;
-
-# unbuffered output:
-$| = 1;
-
-BEGIN {
-    my $iniFile = new Config::IniFiles( -file => "/opt/etc/ini/global.ini" );
-    push( @INC, $iniFile->val( 'APPLICATION', 'LIBRARY' ) );
-}
-use SNET::access;
-use SNET::common;
-use SNET::html;
-use SNET::ActiveDirectory;
-
-use vars qw($verbose $debug $help $env $script $cli_mode $action $IM $username $belongs_iss3 $belongs_network $belongs_security $belongs_admin $migration $ldap_admin $ldap_passwd);
-$debug   = 0;
-$verbose = 0;
-( $script ) = split( /\./, basename( $0 ) );
-
-my $title    = "LDAP Add User";
-my $function = $title;
-$function =~ s/\s/_/g;
-my $href     = "";
-my $header   = "";
-my $html_msg = "";
-
-my $global_iniFile = new Config::IniFiles( -file => "/opt/etc/ini/global.ini" );
-
-$env = "test";    # "prod";
-( $html_msg ) = Access_snet_script_head( $script, $global_iniFile, $ENV, $env );
-
-# Get current user
-my $run_user = '';
-if ( defined( $ENV{"HTTP_AUTHUSER"} ) ) {
-    $run_user = $ENV{"HTTP_AUTHUSER"};
-}
-if ( $cli_mode && ( $run_user eq '' ) ) {
-    $run_user = $ENV{"USERNAME"};
-}
-
-if ( defined( $run_user ) ) {
-    $run_user =~ s/uid=//;
-    $run_user =~ s/,.*$//g;
-}
-
-=head1 print_prompt - HTML Form
-
-  Display the HTML Form parameters.
-
-  Arguments:
-    - Login name:
-        - Text field to write the new login name to be created. The username should already exist in Net1.
-    - IM:
-        - Text field to write the SMT IM associated with the request.
-    - Options:
-        - iss3,network,security: select only one where the user belong to.
-        - verbose: active the verbose output.
-        - debug: active the debug output.
-
-=cut
-
-sub print_prompt ($$$$)
-{
-    my ( $ldap_admin, $ldap_passwd, $username, $IM ) = @_;
-
-    print start_form( -enctype => &CGI::MULTIPART );
-
-    print "<em>Administrator uid (or full dn): </em>";
-    print textfield(
-                     -name    => 'ldap_admin',
-                     -default => (
-                                     $ldap_admin
-                                   ? $ldap_admin
-                                   : 'cn=administrator,ou=people,ou=management,dc=ec,dc=europa,dc=eu'
-                     ),
-                     -size      => 50,
-                     -maxlength => 80
-    );
-    print nl();
-
-    print nl();
-    print "<em>Administrator password: </em>";
-    print password_field(
-                          -name      => 'ldap_passwd',
-                          -default   => ( $ldap_passwd ? $ldap_passwd : '' ),
-                          -size      => 50,
-                          -maxlength => 100
-    );
-    print nl();
-
-    print nl();
-    print "<em>Login name (same as net1): </em>";
-    print textfield(
-                     -name      => 'username',
-                     -default   => ( $username ? $username : '' ),
-                     -size      => 50,
-                     -maxlength => 80
-    );
-    print nl();
-
-    print nl();
-    print "<em>IM (Full SMT ticket number): </em>";
-    print textfield(
-                     -name      => 'IM',
-                     -default   => ( $IM ? $IM : '' ),
-                     -override  => 1,
-                     -size      => 50,
-                     -maxlength => 100
-    );
-    print nl();
-
-    print nl();
-    print "<em>Options: </em>" . nl();
-    print checkbox_group(
-                          -name      => 'belongs',
-                          -values    => [ 'administrator', 'iss3', 'network', 'security', 'migration', 'verbose', 'debug' ],
-                          -linebreak => 'true'
-    );
-    print nl();
-
-    print "<p>", submit( 'action', 'Submit' ), reset;
-    print end_form();
-
-}
-
-=head1 do_work - HTML Parameters
-
-    display the parameters passed to the web interface.
-
-    Arguments: None
-
-=cut
-
-sub do_work ()
-{
-    my ( @values, $key );
-
-    return if ( !param );
-    print "<h2>Here are the current settings used for the $title processor</h2>";
-
-    foreach $key ( param ) {
-        next if ( $key =~ /passw/i );
-        print "<strong>$key</strong> -> ";
-        @values = param( $key );
-        print join( ", ", @values ) . nl();
-    }
-    print nl() . nl();
-}
-
-$action = '';
-
-my $old_people_tree      = "ou=People,dc=snmc,dc=cec,dc=eu,dc=int";
-my $new_people_tree      = "ou=people,ou=SNet,ou=2,ou=C,o=DIGIT,dc=ec,dc=europa,dc=eu";
-my $new_dead_people_tree = "ou=expired,ou=SNet,ou=2,ou=C,o=DIGIT,dc=ec,dc=europa,dc=eu";
-
-$IM       = param( 'IM' )       if ( defined( param( 'IM' ) )       && ( param( 'IM' ) !~ /^$/ )       && ( param( 'IM' ) =~ /^IM\d+$/ ) );
-$action   = param( 'action' )   if ( defined( param( 'action' ) )   && ( param( 'action' ) !~ /^$/ )   && ( param( 'action' ) =~ /^\w+$/ ) );
-$username = param( 'username' ) if ( defined( param( 'username' ) ) && ( param( 'username' ) !~ /^$/ ) && ( param( 'username' ) =~ /^[\w-]+$/ ) );
-if ( defined( param( 'ldap_admin' ) ) && ( param( 'ldap_admin' ) !~ /^$/ ) && ( param( 'ldap_admin' ) =~ /^[\w=,-]+$/ ) ) {
-    $ldap_admin = param( 'ldap_admin' );
-    if ( $ldap_admin !~ /,/ ) {
-        $ldap_admin = 'uid=' . $ldap_admin . ',' . $new_people_tree;
-    }
-}
-$ldap_passwd = param( 'ldap_passwd' ) if ( defined( param( 'ldap_passwd' ) ) && ( param( 'ldap_passwd' ) !~ /^$/ ) );
-
-$belongs_admin    = 0;
-$belongs_iss3     = 0;
-$belongs_network  = 0;
-$belongs_security = 0;
-$migration        = 0;
-my $pcount = 0;
-
-if ( ( defined( param( 'belongs' ) ) && ( param( 'belongs' ) !~ /^$/ ) ) ) {
-    my @values = param( 'belongs' );
-    my $belongs = join( ", ", @values );
-    $belongs =~ s/\n//;
-    $belongs =~ s/\r//;
-    $belongs =~ s/\s+//;
-    if ( $belongs =~ /administrator/ ) {
-        $belongs_admin = 1;
-    }
-    if ( $belongs =~ /iss3/ ) {
-        $belongs_iss3 = 1;
-        $pcount++;
-    }
-    if ( $belongs =~ /network/ ) {
-        $belongs_network = 1;
-        $pcount++;
-    }
-    if ( $belongs =~ /security/ ) {
-        $belongs_security = 1;
-        $pcount++;
-    }
-
-    $verbose   = 1 if ( $belongs =~ /verbose/ );
-    $debug     = 1 if ( $belongs =~ /debug/ );
-    $migration = 1 if ( $belongs =~ /migration/ );
-}
-
-print header( -charset => 'UTF-8', );
-
-dg_header_html( $title, 1, 0, $href, $header );
-print $html_msg . nl();
-
-# TODO add only one belongs_* stuff
-#$belongs_iss3 = 0;
-#$belongs_network = 0;
-#$belongs_security = 0;
-
-if (    defined( $username )
-     && ( $username !~ /^$/ )
-     && ( $username =~ /^[\w-]+$/ )
-     && defined( $IM )
-     && ( $IM !~ /^$/ )
-     && ( $IM =~ /^IM\d{10}$/ )
-     && ( defined( $action ) )
-     && ( $action eq "Submit" )
-     && ( $pcount <= 1 ) ) {
-
-    do_work();
-
-    my $AiniFile = new Config::IniFiles( -file => $global_iniFile->val( 'INI', 'AD' ) );
-    my $adserver = $AiniFile->val( 'AD_NET1', 'SERVER' );
-    print "error value of adserver is undefined" if ( !defined( $adserver ) );
-    my $aduser = $AiniFile->val( 'AD_NET1', 'USER' );
-    print "error value of aduser is undefined" if ( !defined( $aduser ) );
-    my $adpasswd = $AiniFile->val( 'AD_NET1', 'PASSWORD' );
-    print "error value of adpasswd is undefined" if ( !defined( $adpasswd ) );
-
-    my $attrs = [ 'displayName', 'mail' ];
-
-    my ( $mail, $name ) = ( '', '' );
-    print "Searching Net1 for userlogin : '$username'" . nl();
-
-    my $ad = Net::LDAP->new( $adserver )
-      or die "Could not connect to AD: $adserver!";
-
-    $ad->bind( $aduser, password => $adpasswd );
-
-    #my $searchbase = 'OU=Users_ITIC,OU=DIGIT,OU=DGs,DC=net1,DC=cec,DC=eu,DC=int';
-    my $searchbase = 'OU=DIGIT,OU=DGs,DC=net1,DC=cec,DC=eu,DC=int';
-    my $filter     = "sAMAccountName=$username";
-
-    my $results = $ad->search( base => $searchbase, filter => $filter, attrs => $attrs );
-    if ( ( $results->code ) && ( $results->code != 32 ) ) {
-        print "Code:" . $results->code . " '" . $results->error . "'" . nl();
-        $ad->unbind;
-        exit 1;
-    }
-    my $count = $results->count;
-
-    if ( $count != 1 ) {
-        print "More than 1 entries fetched from the AD Net1. Do not know what to do. One and only one entry should be found." . nl();
-        $ad->unbind;
-        exit;
-    } else {
-        print "'$count' record fetched from Net1." . nl();
-    }
-
-    my $entry = $results->entry( 0 );
-
-    $mail = $entry->get_value( 'mail' );
-    $name = $entry->get_value( 'displayName' );
-    $name =~ s/\s\(.*$//;
-    $mail = lc( $mail );
-
-    $ad->unbind;
-    undef $results;
-
-    print "Pursuing the addition of user '$username' with parameters:" . nl();
-    print " - Realname: '$name'" . nl();
-    print " - Email: '$mail'" . nl();
-    print br;
-
-    # Check if username already exist
-    my $ldap_server  = 'ldap.snmc.cec.eu.int';
-    my $homeserver   = "home.snmc.cec.eu.int";
-    my $ldap_min_uid = 2000;
-    my $ldap_max_uid = 10000;
-    print "Connecting to $ldap_server..." . nl();
-
-    my $ldap = Net::LDAP->new( $ldap_server, onerror => sub { print "oups! " . $_[0]->error() . nl(); return undef; }, ) or die "$@";
-
-    $ldap->start_tls( verify => 'require',
-                      cafile => '/usr/share/ca-certificates/cec.eu.int/cec.eu.int_CA.crt', );
-    $ldap->bind( $ldap_admin, password => $ldap_passwd );
-
-    print "Searching directory for existing uid: $username" . nl();
-
-    $results = $ldap->search( base => $new_people_tree, filter => "(uid=$username)", attrs => [ "cn", "uidNumber" ] );
-
-    if ( defined( $results ) ) {
-        $results->code && die $results->error;
-        $count = $results->count;
-
-        if ( $count != 0 ) {
-            print "Account already exist ('$count') in SNet LDAP. stopping process." . nl();
-            $entry = $results->entry( 0 );
-            print "cn: " . $entry->get_value( 'cn' ) . " uid " . $entry->get_value( 'uidNumber' ) . nl();
-            $ldap->unbind;
-            exit;
-        }
-        undef $results;
-
-    } else {
-        print "Did not found any existing entry in the LDAP SNet directory." . nl();
-    }
-
-    $results = $ldap->search( base => $new_dead_people_tree, filter => "(uid=$username)", attrs => [ "cn", "uidNumber" ] );
-
-    if ( defined( $results ) ) {
-
-        # TODO: branch does not yet exist...
-        if ( ( $results->code ) && ( $results->code != 32 ) ) {
-            print "Code:" . $results->code . " '" . $results->error . "'" . nl();
-            $ldap->unbind;
-            exit 1;
-        }
-        $count = $results->count;
-
-        if ( $count != 0 ) {
-            print "Account already exist in SNet LDAP for the old members! stopping process." . nl();
-            $ldap->unbind;
-            exit;
-        } else {
-            print "Did not found any existing entry in the LDAP SNet old members directory." . nl();
-        }
-    }
-
-    undef $results;
-
-    my $old_ldap;
-    my $old_ldap_server = 'snmc-ldapns.snmc.cec.eu.int';
-    my $old_admin       = 'cn=Directory Manager';
-    my $old_passwd      = 'DirectoryM!';
-
-    my $old_password;
-    my $old_uidnumber;
-    my @old_description;
-    my $old_result = 0;
-
-    my $next_free_uidnumber;
-
-    if ( $migration ) {
-
-        print "Checking if this is a migration from old directory..." . nl();
-
-        eval {
-
-            $old_ldap = Net::LDAP->new( $old_ldap_server, onerror => sub { print "oupsi! " . $_[0]->error() . nl(); return undef; }, )
-              or die "Could not connect to $old_ldap_server!";
-            $old_ldap->bind( $old_admin, password => $old_passwd );
-
-            $results = $old_ldap->search( base => $old_people_tree, filter => "(uid=$username)", attrs => [ "userPassword", "uidNumber", "description" ] );
-            if ( defined( $results ) && ( $results->count == 1 ) ) {
-                $old_password    = $results->entry->get_value( 'userPassword' );
-                $old_uidnumber   = $results->entry->get_value( 'uidNumber' );
-                @old_description = $results->entry->get_value( 'description' );
-                print "Found an uid matching with uidnumber : $old_uidnumber" . nl();
-                if ( defined( $old_uidnumber ) ) {
-                    undef $results;
-                    $results = $ldap->search( base => $new_people_tree, filter => "(uidNumber=$old_uidnumber)", attrs => ["cn"] );
-                    if ( $results->count != 0 ) {
-                        undef $old_uidnumber;
-                    } else {
-                        $next_free_uidnumber = $old_uidnumber;
-                    }
-                    undef $results;
-                }
-                $old_result = 1;
-            } else {
-                print "seems to be a new user" . nl();
-            }
-            $old_ldap->unbind;
-
-        };
-        if ( $@ ) {
-            print "oupsi! $@" . nl();
-            $old_ldap->unbind;
-        }
-    }
-    undef $results;
-
-    if ( !( defined( $old_uidnumber ) ) ) {
-
-        print "Allocating a new uidNumber..." . nl();
-
-        # fetching all the uid, to find the next available uid
-
-        # first tree... the living one...
-        $results = $ldap->search( base => $new_people_tree, filter => "(&(objectClass=posixAccount)(uid=*))", attrs => [ "cn", "uidNumber" ] );
-
-        exit 1 unless defined( $results );
-        if ( ( $results->code ) && ( $results->code != 32 ) ) {
-            print "Code:" . $results->code . " '" . $results->error . "'" . nl();
-            $ldap->unbind;
-            exit 1;
-        }
-
-        $count = $results->count;
-        if ( $count != 0 ) {
-            print "found $count already used uid(s)" . nl();
-        }
-
-        my %blah;
-        foreach my $entry ( $results->entries ) {
-
-            #  $entry->dump;
-            my $uid       = $entry->get_value( 'cn' );
-            my $uidnumber = $entry->get_value( 'uidNumber' );
-
-            if ( defined( $blah{$uidnumber} ) ) {
-                $blah{$uidnumber} = $blah{$uidnumber} + 1;
-            } else {
-                if ( ( $uidnumber >= $ldap_min_uid ) && ( $uidnumber < 10000 ) ) {
-                    $blah{$uidnumber} = 1;
-                }
-            }
-        }
-
-        undef $results;
-
-        # searching the dead one...
-        $results = $ldap->search( base => $new_dead_people_tree, filter => "(uid=*)", attrs => [ "cn", "uidNumber" ] );
-        if ( defined( $results ) ) {
-            if ( ( $results->code ) && ( $results->code != 32 ) ) {
-                print "Code:" . $results->code . " '" . $results->error . "'" . nl();
-                $ldap->unbind;
-                exit 1;
-            }
-
-            foreach my $entry ( $results->entries ) {
-
-                #  $entry->dump;
-                my $uid       = $entry->get_value( 'cn' );
-                my $uidnumber = $entry->get_value( 'uidNumber' );
-
-                if ( defined( $blah{$uidnumber} ) ) {
-                    $blah{$uidnumber} = $blah{$uidnumber} + 1;
-                } else {
-                    if ( ( $uidnumber >= $ldap_min_uid ) && ( $uidnumber < $ldap_max_uid ) ) {
-                        $blah{$uidnumber} = 1;
-                    }
-                }
-            }
-
-            undef $results;
-        }
-
-        foreach my $key ( sort { $a <=> $b } ( keys( %blah ) ) ) {
-            if ( $blah{$key} > 1 ) {
-                print "WARNING : uid number $key is used several time!" . nl();
-            }
-        }
-
-        for ( $next_free_uidnumber = $ldap_min_uid ; $next_free_uidnumber <= $ldap_max_uid ; $next_free_uidnumber++ ) {
-            if ( !defined( $blah{$next_free_uidnumber} ) ) {
-                last;
-            }
-        }
-
-    }
-
-    if ( $next_free_uidnumber < $ldap_max_uid ) {
-        print "next free uid number : $next_free_uidnumber" . nl();
-    } else {
-        print "No more uid number available!" . nl();
-        exit 1;
-    }
-
-    my $uidn = $next_free_uidnumber;
-    my $gidn = 3500;                   # gid is snmc...
-
-    my $description = ();
-    my $folder      = '';
-    if ( $belongs_admin ) {
-        $belongs_admin = 'cn=admin,ou=groups,ou=SNet,ou=2,ou=C,o=DIGIT,dc=ec,dc=europa,dc=eu';
-    }
-    if ( $belongs_network ) {
-        if ( $old_result ) {
-            push( @$description, @old_description );
-        } else {
-            push( @$description, 'RPRO' );
-            push( @$description, 'PSRO' );
-            push( @$description, 'CWRW' );
-        }
-        $folder = 'cn=network,ou=groups,ou=SNet,ou=2,ou=C,o=DIGIT,dc=ec,dc=europa,dc=eu';
-    } elsif ( $belongs_security ) {
-        if ( $old_result ) {
-            push( @$description, @old_description );
-        } else {
-            push( @$description, 'RPRW' );
-            push( @$description, 'PSRW' );
-            push( @$description, 'CWRO' );
-        }
-        $folder = 'cn=security,ou=groups,ou=SNet,ou=2,ou=C,o=DIGIT,dc=ec,dc=europa,dc=eu';
-    } elsif ( $belongs_iss3 ) {
-        if ( $old_result ) {
-            push( @$description, @old_description );
-        } else {
-            push( @$description, 'RPRW' );
-            push( @$description, 'PSRW' );
-            push( @$description, 'CWRA' );
-        }
-        $folder = 'cn=iss3,ou=groups,ou=SNet,ou=2,ou=C,o=DIGIT,dc=ec,dc=europa,dc=eu';
-    } else {
-        print "ignoring old attributes as no group membership was specified" . nl();
-
-        #if ($old_result) {
-        #    push( @$description, @old_description );
-        #}
-        #else {
-        push( @$description, 'RPRO' );
-        push( @$description, 'PSRO' );
-        push( @$description, 'CWRO' );
-
-        #}
-    }
-
-    #my $uid_dn = "uid=${username},ou=${folder},".$new_people_tree;
-    my $uid_dn = "uid=${username}," . $new_people_tree;
-
-    print "Creating user '$username' using the following parameters:" . nl();
-    print " - Realname: '$name'" . nl();
-    print " - Email: '$mail'" . nl();
-    print " - UID number: '$uidn'" . nl();
-    print " - GID number: '$gidn'" . nl();
-    print " - description: " . Dumper( $description ) . nl();
-    print " - uid_dn: '$uid_dn'" . nl();
-    print " - AUDIT: '$IM;$run_user;A;" . time . "'" . nl();
-    print br;
-
-    # Need to SSH to home.snmc.cec.eu.int
-    #        if ( ! -d "/opt/home/$username" ) {
-    #            print "Creation directory";
-    #            system "mkdir /opt/home/$username";
-    #            system "chown $next_free_uidnumber:3500 /opt/home/$username";
-    #        }
-
-    my $attr = [
-                 'cn'               => $username,
-                 'sn'               => $username,
-                 'uid'              => $username,
-                 'uidNumber'        => $uidn,
-                 'gidNumber'        => $gidn,
-                 'description'      => $description,
-                 'mail'             => $mail,
-                 'gecos'            => $name,
-                 'homeDirectory'    => "/home/$username",
-                 'loginShell'       => '/bin/ksh',
-                 'shadowLastChange' => '11640',
-                 'shadowFlag'       => '0',
-                 'auditInformation' => "$IM;$run_user;A;" . time,
-                 'objectClass'      => [ 'inetOrgPerson', 'organizationalPerson', 'person', 'posixAccount', 'shadowAccount', 'simpleSecurityObject', 'Audit', 'top' ],
-    ];
-
-    my $pass;
-    if ( $old_result && defined( $old_password ) ) {
-        $pass = $old_password;
-        my $ppolicy = "cn=migration,ou=policies,ou=SNet,ou=2,ou=C,o=DIGIT,dc=ec,dc=europa,dc=eu";
-        unshift( @{$attr}, 'pwdConstraintSubentry' => $ppolicy, 'pwdPolicySubentry' => $ppolicy );
-    } else {
-        $pass = '{CLEARTEXT}P@ssword01';
-    }
-    unshift( @{$attr}, 'userPassword' => $pass );
-
-    print "adding to the SNet LDAP server '$ldap_server'" . nl();
-
-    $results = $ldap->add( $uid_dn, attr => $attr, );
-    if ( ( $results->code ) && ( $results->code != 32 ) ) {
-        print "Code:" . $results->code . " '" . $results->error . "'" . nl();
-        $ldap->unbind;
-        exit 1;
-    }
-
-    $results->code && warn "failed to add entry: ", $results->error;
-
-    undef $results;
-
-    #            $result = $ldap->modify( "cn=snmc,ou=group,dc=snmc,dc=cec,dc=eu,dc=int", add => { memberUid => $username } );
-    #            $result->code && warn "failed to modify group snmc: ", $result->error ;
-    #            $result = $ldap->modify( "cn=NS,ou=group,dc=snmc,dc=cec,dc=eu,dc=int", add => { memberUid => $username } );
-    #            $result->code && warn "failed to modify group: ", $result->error ;
-
-    print "User '$username' created." . nl();
-
-    if ( $belongs_admin ) {
-        $results = $ldap->modify( $belongs_admin, add => { member => [$uid_dn] } );
-        if ( defined( $results ) ) {
-            print "user added to admin group" . nl();
-            undef $results;
-        } else {
-            print "fail to add user to admin group" . nl();
-        }
-    }
-    if ( $belongs_network || $belongs_security || $belongs_iss3 ) {
-        $results = $ldap->modify( $folder, add => { memberUid => [$username] } );
-        $folder =~ s/^cn=//;
-        $folder =~ s/,.*//;
-        if ( defined( $results ) ) {
-            print "user added to $folder group" . nl();
-            undef $results;
-        } else {
-            print "fail to add user to $folder group" . nl();
-        }
-    } else {
-        print "user was added without group membership" . nl();
-    }
-
-} else {
-
-    if ( ( defined( $action ) ) && ( $action eq "Submit" ) ) {
-
-        if ( $pcount > 1 ) {
-            print "ERROR: only 1 base group is valid" . nl();
-        }
-        if ( defined( $username ) && ( $username !~ /^$/ ) && ( $username !~ /^[\w-]+$/ ) ) {
-            print "ERROR: username contains some unsupported characters." . nl();
-        }
-        if ( defined( $IM ) && ( $IM !~ /^$/ ) && ( $IM !~ /^IM\d{10}$/ ) ) {
-            print "ERROR: IM is not a valid IM number." . nl();
-        }
-        if ( defined( $ldap_admin ) && ( $ldap_admin !~ /^$/ ) && ( $ldap_admin !~ /^[\w=,-]+$/ ) ) {
-            print "ERROR: admin dn contains some unsupported characters." . nl();
-        }
-    }
-    print_prompt( $ldap_admin, $ldap_passwd, $username, $IM );
-}
-print '</div>';
-print "<hr> <address>Snet NS Team</address><br> <a href=\"\">Home Page</a>";
-print end_html;
-
-exit 1;
-
-- 
GitLab