diff options
Diffstat (limited to 'lib/FPanel/Login.pm')
-rw-r--r-- | lib/FPanel/Login.pm | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/lib/FPanel/Login.pm b/lib/FPanel/Login.pm index 506a7b8..173a34f 100644 --- a/lib/FPanel/Login.pm +++ b/lib/FPanel/Login.pm @@ -59,6 +59,7 @@ sub cgiapp_init { my $ldap = Net::LDAP->new( $CFG{ldap_uri} ); my $mesg = $ldap->bind ( $bind_dn, password => $p ); + $ldap->unbind; $mesg->code ? 0 : $u; } ], STORE => 'Session', @@ -87,23 +88,22 @@ sub setup { print STDERR $ENV{PATH_INFO} . '?' . $q->query_string, "\n"; # The user just logged in - return 'okay' if (defined $q->param('authen_username')) and - (defined $q->param('authen_password')); + return 'okay' if defined $q->param('login'); my $a = $q->param('a'); return 'login' if defined $a and $a eq 'login'; return 'logout' if defined $a and $a eq 'logout'; - # /domain/{user,alias,list}/?requests + # /domain/{user,alias,list}/?query_url my ($null,$domain,$local,$crap) = split /\//, $ENV{PATH_INFO}; - return 'DomainList' unless (defined $null) and $null eq ''; + return 'ListDomains' unless (defined $null) and $null eq ''; unless (defined $domain and $domain ne '') { if (defined $a) { return 'AddDomain' if $a eq 'AddDomain'; } - return 'DomainList'; + return 'ListDomains'; } unless (defined $local and $local ne '') { @@ -111,15 +111,16 @@ sub setup { return 'EditDomain' if $a eq 'edit'; return 'AddAccount' if $a eq 'AddAccount'; return 'AddAlias' if $a eq 'AddAlias'; + return 'AddList' if $a eq 'AddList'; } - return 'LocalList'; + return 'ListLocals'; } unless (defined $crap and $crap ne '') { - return 'LocalEdit'; + return 'EditLocal'; } - return 'DomainList'; + return 'error_404'; }); } @@ -193,11 +194,16 @@ sub error_rm : ErrorRunmode { my $template = $self->load_tmpl( 'error.html', cache => 1, utf8 => 1 ); $template->param( EMAIL => $self->cfg('report_email') ); $template->param( MESSAGE => $error ); - $template->param( URL => $self->query->url ); + $template->param( URL => $self->query->url . '/'); return $template->output; } +sub error_404 : Runmode { + my $self = shift; + $self->header_props ( -status => '404 Not found' ); + return ''; +} 1; |