diff -r 5cee74cc1991 -r 93f3693c31a0 qf.cgi --- a/qf.cgi Fri Oct 05 12:37:50 2012 +0200 +++ b/qf.cgi Fri Oct 05 12:51:03 2012 +0200 @@ -24,12 +24,13 @@ use warnings; use CGI; + #use Net::Sieve; use Net::ManageSieve; -my $host = 'localhost'; -my $verify_crt = 0; -my $requiretls = 'require'; +my $host = 'localhost'; +my $verify_crt = 0; +my $requiretls = 'require'; my $script_name = 'ius'; my $status = 'OK'; @@ -38,7 +39,10 @@ sub error { my $h; - $status = ( ref $_[0] eq 'HASH' and $h = shift and defined $h->{status} ) ? delete $h->{status} : 'Interner Fehler'; + $status = + (ref $_[0] eq 'HASH' and $h = shift and defined $h->{status}) + ? delete $h->{status} + : 'Interner Fehler'; warn @_ if defined @_ and @_; exit -1; @@ -57,7 +61,7 @@ my ($sieve, $script) = @_; my $scripts = $sieve->listscripts - or error "Can't list scripts: $@"; + or error "Can't list scripts: $@"; return $script ~~ @{$scripts}; } @@ -66,7 +70,7 @@ my ($sieve, $script) = @_; my $scripts = $sieve->listscripts - or error "Can't list scripts: $@"; + or error "Can't list scripts: $@"; return $script eq $scripts->[-1]; } @@ -85,63 +89,80 @@ } EOC -my $q = new CGI; +my $q = new CGI; my $title = 'Mailumleitung einrichten'; - -print $q->header( -charset => 'UTF-8' ); +print $q->header(-charset => 'UTF-8'); print $q->start_html( -title => $title, -style => { -code => $css }, -onload => q{document.forms['theform'].elements['user'].focus();} ), - $q->h3( { -id => 'header' }, $title ), + $q->h3({ -id => 'header' }, $title), $q->hr; my $p; $p->{$_} = $q->param($_) for qw(user pass address keep add del); -print $q->start_form( -id => 'theform' ), +print $q->start_form(-id => 'theform'), $q->table( - $q->Tr( $q->td('Ihr Nutzername'), $q->td( $q->textfield('user') ) ), - $q->Tr( $q->td('Ihr Passwort'), $q->td( $q->password_field('pass') ) ), - $q->Tr( $q->td('Umleitung zu'), $q->td( $q->textfield('address') ) ), - $q->Tr( $q->td( $q->checkbox( - -name => 'keep', - -label => 'Kopie behalten?', - -checked => 1) ) ), - $q->Tr( $q->td( $q->submit( { -name => 'add', -value => 'einrichten' } ) ), - $q->td( $q->submit( { -name => 'del', -value => 'entfernen' } ) ) + $q->Tr($q->td('Ihr Nutzername'), $q->td($q->textfield('user'))), + $q->Tr($q->td('Ihr Passwort'), $q->td($q->password_field('pass'))), + $q->Tr($q->td('Umleitung zu'), $q->td($q->textfield('address'))), + $q->Tr( + $q->td( + $q->checkbox( + -name => 'keep', + -label => 'Kopie behalten?', + -checked => 1 + ) + ) + ), + $q->Tr( + $q->td($q->submit({ -name => 'add', -value => 'einrichten' })), + $q->td($q->submit({ -name => 'del', -value => 'entfernen' })) ), ), $q->end_form; -error( { status => 'Bitte geben Sie Ihren Nutzernamen an.' } ) unless defined $p->{user} and $p->{user} ne ''; -error( { status => 'Bitte geben Sie Ihr Passwort an.' } ) unless defined $p->{pass} and $p->{pass} ne ''; +error({ status => 'Bitte geben Sie Ihren Nutzernamen an.' }) + unless defined $p->{user} and $p->{user} ne ''; +error({ status => 'Bitte geben Sie Ihr Passwort an.' }) + unless defined $p->{pass} and $p->{pass} ne ''; -my $s = Net::ManageSieve->new(host => $host, tls => $requiretls ) or error "Can't connect sieve service"; -error( { status => 'Anmeldung fehlgeschlagen.' }, "auth failed: $@" ) unless ($s->login($p->{user}, $p->{pass})); +my $s = Net::ManageSieve->new(host => $host, tls => $requiretls) + or error "Can't connect sieve service"; +error({ status => 'Anmeldung fehlgeschlagen.' }, "auth failed: $@") + unless ($s->login($p->{user}, $p->{pass})); -if ( defined $p->{add} and $p->{add} ne '' ) { +if (defined $p->{add} and $p->{add} ne '') { - error( { status => 'Bitte geben Sie eine Umleitungsaddresse an.' } ) unless defined $p->{address} and $p->{address} ne ''; - error "Can't putscript: $@" unless $s->putscript($script_name, redirect($p->{address}, $p->{keep})); + error({ status => 'Bitte geben Sie eine Umleitungsaddresse an.' }) + unless defined $p->{address} and $p->{address} ne ''; + error "Can't putscript: $@" + unless $s->putscript($script_name, redirect($p->{address}, $p->{keep})); error "Can't setactive: $@" unless $s->setactive($script_name); $status = 'Umleitung eingerichtet.'; -} elsif ( defined $p->{del} and $p->{del} ne '' ) { +} elsif (defined $p->{del} and $p->{del} ne '') { - error "Can't setactive: $@" if script_isactive($s, $script_name) and not $s->setactive(); - error "Can't deletescript: $@" if script_exists($s, $script_name) and not $s->deletescript($script_name); + error "Can't setactive: $@" + if script_isactive($s, $script_name) + and not $s->setactive(); + error "Can't deletescript: $@" + if script_exists($s, $script_name) + and not $s->deletescript($script_name); $status = 'Umleitung entfernt.'; -} else { error "Nothing to do!"; } +} else { + error "Nothing to do!"; +} exit 0; END { defined $s and $s->logout; - print $q->hr, $q->p( $status ), $q->end_html; + print $q->hr, $q->p($status), $q->end_html; } __END__