chiark / gitweb /
password check, logout button
[nj-awaymsg.git] / mason / autohandler
1 <%once>
2 use CGI::Auth::Flexible;
3
4 sub do_redirect_mason ($$$$) {
5     my ($c, $ar, $new_url, $cookie) = @_;
6     $m->auto_send_headers(0);
7     CGI::Auth::Flexible::do_redirect_cgi($c,$ar,$new_url,$cookie);
8 }
9
10 sub login_ok_self ($$) {
11     my ($c, $ar) = @_;
12     my $password = $c->param('password');
13     return $password eq 'sesame' ? ('self',undef) : (undef,'wrong');
14 }
15
16 my $ar = CGI::Auth::Flexible->new_verifier(
17     dir => "$ENV{'NJAWAYMSG'}/data",
18 #    do_redirect => \&do_redirect_mason,
19     handle_divert => sub { $m->auto_send_headers(0); return 0; },
20 #    print => sub { my ($c,$ar,@t) = @_; $m->print(@t); },
21     encrypted_only => 0,
22     username_param_names => [],
23     login_ok => \&login_ok_self,
24     );
25 </%once>
26 <%perl>
27 my $cgi = $m->cgi_object();
28 print STDERR ">".$cgi->url()."<\n";
29 my $ar = $ar->new_request($cgi);
30 if ($ar->check_ok()) {
31    $m->call_next();
32 </%perl>
33 <hr>
34 <form method="POST" action="<% $cgi->url() %>">
35 <% $ar->secret_hidden_html() %>
36 <input type="submit" name="caf_logout" value="Logout">
37 </form>
38 <%perl>
39 }
40 </%perl>