diff --git a/cgi-bin/ldap_NS_adduser.pl b/cgi-bin/ldap_NS_adduser.pl index 4678efdfa8554ba16e7118e9cbfef3e63682d068..df49fc3faa58eec4faa2688423233ce3ef01985a 100755 --- a/cgi-bin/ldap_NS_adduser.pl +++ b/cgi-bin/ldap_NS_adduser.pl @@ -28,26 +28,26 @@ use SNET::ActiveDirectory; use vars qw($verbose $debug $help $env $script $cli_mode $action $IM $username $belongs_iss3 $belongs_network $belongs_security $ldap_admin $ldap_passwd); $debug = 0; $verbose = 0; -($script) = split(/\./,basename($0)); +( $script ) = split( /\./, basename( $0 ) ); -my $title = "LDAP Add User"; +my $title = "LDAP Add User"; my $function = $title; -$function =~s/\s/_/g; -my $href = ""; -my $header = ""; +$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 ); +$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"})) { +if ( defined( $ENV{"HTTP_AUTHUSER"} ) ) { $run_user = $ENV{"HTTP_AUTHUSER"}; } -if ( $cli_mode && ($run_user eq '') ) { +if ( $cli_mode && ( $run_user eq '' ) ) { $run_user = $ENV{"USERNAME"}; } $run_user =~ s/uid=//; @@ -71,52 +71,64 @@ $run_user =~ s/,.*$//g; sub print_prompt ($$$$) { - my ($ldap_admin, $ldap_passwd, $username, $IM) = @_; + my ( $ldap_admin, $ldap_passwd, $username, $IM ) = @_; - print start_form(-enctype=>&CGI::MULTIPART); + print start_form( -enctype => &CGI::MULTIPART ); print "<em>Administrator dn: </em>"; - print textfield(-name=>'ldap_admin', - -default=>($ldap_admin ? - $ldap_admin : - 'cn=administrator,ou=admin,dc=snmc,dc=cec,dc=eu,dc=int'), - -size=>50, - -maxlength=>80); + print textfield( + -name => 'ldap_admin', + -default => ( + $ldap_admin + ? $ldap_admin + : 'cn=administrator,ou=admin,dc=snmc,dc=cec,dc=eu,dc=int' + ), + -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 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 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 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=>['iss3','network','security','verbose','debug'], - -linebreak=>'true'); + print "<em>Options: </em>" . nl(); + print checkbox_group( + -name => 'belongs', + -values => [ 'iss3', 'network', 'security', 'verbose', 'debug' ], + -linebreak => 'true' + ); print nl(); - print "<p>",submit('action','Submit'),reset; + print "<p>", submit( 'action', 'Submit' ), reset; print end_form(); } @@ -131,39 +143,39 @@ sub print_prompt ($$$$) sub do_work () { - my(@values,$key); + my ( @values, $key ); - return if (!param); + return if ( !param ); print "<h2>Here are the current settings used for the $title processor</h2>"; - foreach $key (param) { - next if ( $key =~/passw/i ); + foreach $key ( param ) { + next if ( $key =~ /passw/i ); print "<strong>$key</strong> -> "; - @values = param($key); - print join(", ",@values).nl(); + @values = param( $key ); + print join( ", ", @values ) . nl(); } - print nl().nl(); + print nl() . nl(); } $action = ''; -$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-]+$/ ) ); -$ldap_admin = param('ldap_admin') if (defined(param('ldap_admin')) && (param('ldap_admin') !~ /^$/) && (param('ldap_admin')=~ /^[\w,-]+$/ ) ); -$ldap_passwd = param('ldap_passwd') if (defined(param('ldap_passwd')) && (param('ldap_passwd') !~ /^$/) ); +$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-]+$/ ) ); +$ldap_admin = param( 'ldap_admin' ) if ( defined( param( 'ldap_admin' ) ) && ( param( 'ldap_admin' ) !~ /^$/ ) && ( param( 'ldap_admin' ) =~ /^[\w,-]+$/ ) ); +$ldap_passwd = param( 'ldap_passwd' ) if ( defined( param( 'ldap_passwd' ) ) && ( param( 'ldap_passwd' ) !~ /^$/ ) ); -$belongs_iss3 = 0; -$belongs_network = 0; +$belongs_iss3 = 0; +$belongs_network = 0; $belongs_security = 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 ( ( defined( param( 'belongs' ) ) && ( param( 'belongs' ) !~ /^$/ ) ) ) { + my @values = param( 'belongs' ); + my $belongs = join( ", ", @values ); + $belongs =~ s/\n//; + $belongs =~ s/\r//; + $belongs =~ s/\s+//; if ( $belongs =~ /iss3/ ) { $belongs_iss3 = 1; $pcount++; @@ -178,12 +190,10 @@ if ( ( defined (param('belongs') ) && (param('belongs') !~ /^$/ ) ) ) { } $verbose = 1 if ( $belongs =~ /verbose/ ); - $debug = 1 if ( $belongs =~ /debug/ ); + $debug = 1 if ( $belongs =~ /debug/ ); } -print header( - -charset => 'UTF-8', - ); +print header( -charset => 'UTF-8', ); dg_header_html( $title, 1, 0, $href, $header ); print $html_msg . nl(); @@ -193,21 +203,31 @@ print $html_msg . nl(); #$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) ) { +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) ); + 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 $homeserver = "home.snmc.cec.eu.int"; + #my $ldap_server = 'vldap02.dev.snmc.cec.eu.int'; my $ldap_server = 'ldap.snmc.cec.eu.int'; + #my $ldap_admin = 'cn=administrator,ou=admin,dc=snmc,dc=cec,dc=eu,dc=int'; my $ldap_min_uid = 2000; my $ldap_max_uid = 10000; @@ -215,19 +235,19 @@ if ( defined($username) && ($username !~ /^$/) && ($username =~ /^[\w-]+$/ ) && my $attrs = [ 'displayName', 'mail' ]; my ( $mail, $name ) = ( '', '' ); - print "Searching Net1 for userlogin : '$username'".nl(); + 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); + $ad->bind( $aduser, password => $adpasswd ); my $searchbase = 'OU=Users_ITIC,OU=DIGIT,OU=DGs,DC=net1,DC=cec,DC=eu,DC=int'; - my $filter = "sAMAccountName=$username"; + my $filter = "sAMAccountName=$username"; - my $results = $ad->search(base=>$searchbase,filter=>$filter,attrs=>$attrs); + my $results = $ad->search( base => $searchbase, filter => $filter, attrs => $attrs ); if ( ( $results->code ) && ( $results->code != 32 ) ) { - print "Code:" . $results->code . " '" . $results->error ."'" .nl(); + print "Code:" . $results->code . " '" . $results->error . "'" . nl(); $ad->unbind; exit 1; } @@ -238,28 +258,28 @@ if ( defined($username) && ($username !~ /^$/) && ($username =~ /^[\w-]+$/ ) && $ad->unbind; exit; } else { - print "'$count' record fetched from Net1.".nl(); + 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 = $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 "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 = Net::LDAP->new( $ldap_server ) or die "$@"; $ldap->bind; - $results = $ldap->search( base => "ou=people,o=snet,dc=snmc,dc=cec,dc=eu,dc=int", filter => "(uid=$username)", attrs => ["cn", "uidNumber"]); + $results = $ldap->search( base => "ou=people,o=snet,dc=snmc,dc=cec,dc=eu,dc=int", filter => "(uid=$username)", attrs => [ "cn", "uidNumber" ] ); $results->code && die $results->error; $count = $results->count; @@ -267,20 +287,20 @@ if ( defined($username) && ($username !~ /^$/) && ($username =~ /^[\w-]+$/ ) && 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(); + print "cn: " . $entry->get_value( 'cn' ) . " uid " . $entry->get_value( 'uidNumber' ) . nl(); $ldap->unbind; exit; } else { - print "Did not found any existing entry in the LDAP SNet directory.".nl(); + print "Did not found any existing entry in the LDAP SNet directory." . nl(); } undef $results; - $results = $ldap->search( base => "ou=people,o=dead,dc=snmc,dc=cec,dc=eu,dc=int", filter => "(uid=$username)", attrs => ["cn", "uidNumber"]); + $results = $ldap->search( base => "ou=people,o=dead,dc=snmc,dc=cec,dc=eu,dc=int", filter => "(uid=$username)", attrs => [ "cn", "uidNumber" ] ); # TODO: branch does not yet exist... if ( ( $results->code ) && ( $results->code != 32 ) ) { - print "Code:" . $results->code . " '" . $results->error ."'" .nl(); + print "Code:" . $results->code . " '" . $results->error . "'" . nl(); $ldap->unbind; exit 1; } @@ -291,7 +311,7 @@ if ( defined($username) && ($username !~ /^$/) && ($username =~ /^[\w-]+$/ ) && $ldap->unbind; exit; } else { - print "Did not found any existing entry in the LDAP SNet old members directory.".nl(); + print "Did not found any existing entry in the LDAP SNet old members directory." . nl(); } undef $results; @@ -299,25 +319,24 @@ if ( defined($username) && ($username !~ /^$/) && ($username =~ /^[\w-]+$/ ) && # fetching all the uid, to find the next available uid # first tree... the living one... - $results = $ldap->search( base => "ou=people,o=snet,dc=snmc,dc=cec,dc=eu,dc=int", filter => "(uid=*)", attrs => ["cn", "uidNumber"]); + $results = $ldap->search( base => "ou=people,o=snet,dc=snmc,dc=cec,dc=eu,dc=int", filter => "(uid=*)", attrs => [ "cn", "uidNumber" ] ); if ( ( $results->code ) && ( $results->code != 32 ) ) { - print "Code:" . $results->code . " '" . $results->error ."'" .nl(); + print "Code:" . $results->code . " '" . $results->error . "'" . nl(); $ldap->unbind; exit 1; } my %blah; - foreach my $entry ($results->entries) { + foreach my $entry ( $results->entries ) { # $entry->dump; - my $uid=$entry->get_value( 'cn' ); - my $uidnumber=$entry->get_value( 'uidNumber'); + 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)) { + if ( defined( $blah{$uidnumber} ) ) { + $blah{$uidnumber} = $blah{$uidnumber} + 1; + } else { + if ( ( $uidnumber >= $ldap_min_uid ) && ( $uidnumber < 10000 ) ) { $blah{$uidnumber} = 1; } } @@ -326,24 +345,23 @@ if ( defined($username) && ($username !~ /^$/) && ($username =~ /^[\w-]+$/ ) && undef $results; # searching the dead one... - $results = $ldap->search( base => "ou=people,o=dead,dc=snmc,dc=cec,dc=eu,dc=int", filter => "(uid=*)", attrs => ["cn", "uidNumber"]); + $results = $ldap->search( base => "ou=people,o=dead,dc=snmc,dc=cec,dc=eu,dc=int", filter => "(uid=*)", attrs => [ "cn", "uidNumber" ] ); if ( ( $results->code ) && ( $results->code != 32 ) ) { - print "Code:" . $results->code . " '" . $results->error ."'" .nl(); + print "Code:" . $results->code . " '" . $results->error . "'" . nl(); $ldap->unbind; exit 1; } - foreach my $entry ($results->entries) { + foreach my $entry ( $results->entries ) { # $entry->dump; - my $uid=$entry->get_value( 'cn' ); - my $uidnumber=$entry->get_value( 'uidNumber'); + 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)) { + if ( defined( $blah{$uidnumber} ) ) { + $blah{$uidnumber} = $blah{$uidnumber} + 1; + } else { + if ( ( $uidnumber >= $ldap_min_uid ) && ( $uidnumber < $ldap_max_uid ) ) { $blah{$uidnumber} = 1; } } @@ -352,59 +370,58 @@ if ( defined($username) && ($username !~ /^$/) && ($username =~ /^[\w-]+$/ ) && $ldap->unbind; undef $results; - foreach my $key (sort { $a <=> $b } (keys(%blah))) { - if ($blah{$key} > 1) { + foreach my $key ( sort { $a <=> $b } ( keys( %blah ) ) ) { + if ( $blah{$key} > 1 ) { print "WARNING : uid number $key is used several time!" . nl(); } } my $next_free_uidnumber; - for ($next_free_uidnumber = $ldap_min_uid; $next_free_uidnumber <= $ldap_max_uid; $next_free_uidnumber++) { - if (!defined($blah{$next_free_uidnumber})) { + 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) { + if ( $next_free_uidnumber < $ldap_max_uid ) { print "next free uid number : $next_free_uidnumber" . nl(); - } - else { + } else { print "No more uid number available!" . nl(); exit 1; } my $uidn = $next_free_uidnumber; - my $gidn = 3500; # gid is snmc... + my $gidn = 3500; # gid is snmc... my $description = (); - my $folder = ''; + my $folder = ''; if ( $belongs_network ) { - push ( @$description, 'RPRO' ); - push ( @$description, 'PSRO' ); - push ( @$description, 'CWRW' ); + push( @$description, 'RPRO' ); + push( @$description, 'PSRO' ); + push( @$description, 'CWRW' ); $folder = 'network'; } elsif ( $belongs_security ) { - push ( @$description, 'RPRW' ); - push ( @$description, 'PSRW' ); - push ( @$description, 'CWRO' ); + push( @$description, 'RPRW' ); + push( @$description, 'PSRW' ); + push( @$description, 'CWRO' ); $folder = 'security'; } elsif ( $belongs_iss3 ) { - push ( @$description, 'RPRW' ); - push ( @$description, 'PSRW' ); - push ( @$description, 'CWRA' ); + push( @$description, 'RPRW' ); + push( @$description, 'PSRW' ); + push( @$description, 'CWRA' ); $folder = 'iss3'; } my $uid_dn = "uid=${username},ou=${folder},ou=people,o=snet,dc=snmc,dc=cec,dc=eu,dc=int"; - 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 "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 @@ -425,69 +442,70 @@ if ( defined($username) && ($username !~ /^$/) && ($username =~ /^[\w-]+$/ ) && # my $pass = crypt($word,$salt); my $pass = $word; - print "Adding to the SNet LDAP server '$ldap_server'".nl(); + print "Adding to the SNet LDAP server '$ldap_server'" . nl(); - $ldap = Net::LDAP->new($ldap_server) or die "$@"; - $ldap->bind ( $ldap_admin, password => $ldap_passwd ); + $ldap = Net::LDAP->new( $ldap_server ) or die "$@"; + $ldap->bind( $ldap_admin, password => $ldap_passwd ); - $results = $ldap->add ( $uid_dn, + $results = $ldap->add( + $uid_dn, attr => [ - 'cn' => $username, - 'sn' => $username, - 'uid' => $username, - 'uidNumber' => $uidn, - 'gidNumber' => $gidn, - 'description' => $description, - 'mail' => $mail, - 'gecos' => $name, + 'cn' => $username, + 'sn' => $username, + 'uid' => $username, + 'uidNumber' => $uidn, + 'gidNumber' => $gidn, + 'description' => $description, + 'mail' => $mail, + 'gecos' => $name, 'homeDirectory' => "/home/$username", - 'loginShell' => '/bin/ksh', - 'userPassword' => '{CLEARTXT}'.$pass, + 'loginShell' => '/bin/ksh', + 'userPassword' => '{CLEARTXT}' . $pass, #'shadowLastChange' => '11640', #'shadowFlag' => '0', - 'auditInformation' => "$IM;$run_user;A;".time, - 'objectClass' => ['inetOrgPerson', 'organizationalPerson', 'person', 'posixAccount', 'simpleSecurityObject', 'SNetPerson', 'top' ], - ] - ); + 'auditInformation' => "$IM;$run_user;A;" . time, + 'objectClass' => [ 'inetOrgPerson', 'organizationalPerson', 'person', 'posixAccount', 'simpleSecurityObject', 'SNetPerson', 'top' ], + ] + ); if ( ( $results->code ) && ( $results->code != 32 ) ) { - print "Code:" . $results->code . " '" . $results->error ."'" .nl(); + print "Code:" . $results->code . " '" . $results->error . "'" . nl(); $ldap->unbind; exit 1; } - $results->code && warn "failed to add entry: ", $results->error ; + $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 ; + # $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(); + print "User '$username' created." . nl(); } else { - if ( (defined($action)) && ($action eq "Submit") ) { + if ( ( defined( $action ) ) && ( $action eq "Submit" ) ) { - if ($pcount > 1) { - print "ERROR: only 1 group is valid".nl(); - }elsif ($pcount < 1) { + if ( $pcount > 1 ) { + print "ERROR: only 1 group is valid" . nl(); + } elsif ( $pcount < 1 ) { - print "ERROR: at least 1 group is needed".nl(); + print "ERROR: at least 1 group is needed" . nl(); } - if ( defined($username) && ($username !~ /^$/) && ($username !~ /^[\w-]+$/ ) ) { - print "ERROR: username contains some unsupported characters.".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( $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(); + 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_prompt( $ldap_admin, $ldap_passwd, $username, $IM ); } print '</div>'; print "<hr> <address>Snet NS Team</address><br> <a href=\"\">Home Page</a>";