FU: Add "denied" and "notfound" convenience methods
This commit is contained in:
parent
b06cc24826
commit
3662931fc2
2 changed files with 16 additions and 6 deletions
14
FU.pm
14
FU.pm
|
|
@ -352,7 +352,7 @@ sub _do_req($c) {
|
|||
fu->done;
|
||||
}
|
||||
}
|
||||
fu->error(404);
|
||||
fu->notfound;
|
||||
}
|
||||
1;
|
||||
};
|
||||
|
|
@ -671,6 +671,8 @@ sub formdata {
|
|||
|
||||
sub done { die bless [200,'Done',FU::_caller_info], 'FU::err' }
|
||||
sub error($,$code,$msg=$code) { die bless [$code,$msg,FU::_caller_info], 'FU::err' }
|
||||
sub denied { fu->error(403) }
|
||||
sub notfound { fu->error(404) }
|
||||
|
||||
sub status($, $code) { $FU::REQ->{status} = $code }
|
||||
sub set_body($, $data) {
|
||||
|
|
@ -1137,7 +1139,7 @@ the following is a valid approach to handle user authentication:
|
|||
};
|
||||
|
||||
FU::get '/registered-users-only', sub {
|
||||
fu->error(403) if !fu->{user};
|
||||
fu->denied if !fu->{user};
|
||||
};
|
||||
|
||||
In addition to the request information and response generation methods
|
||||
|
|
@ -1266,6 +1268,14 @@ elsewhere, this ends up in running the appropriate C<FU::on_error> handler.
|
|||
|
||||
C<$message> is optional and currently only used for logging.
|
||||
|
||||
=item fu->denied
|
||||
|
||||
Alias for C<< fu->error(403) >>.
|
||||
|
||||
=item fu->notfound
|
||||
|
||||
Alias for C<< fu->error(404) >>.
|
||||
|
||||
=item fu->reset
|
||||
|
||||
Reset the response to an empty state, basically undoing all effects of the
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ my @tabs = (
|
|||
tr_ sub {
|
||||
td_ $_;
|
||||
td_ $r->{reshdr}{$_};
|
||||
} for keys $r->{reshdr}->%*;
|
||||
} for sort keys $r->{reshdr}->%*;
|
||||
};
|
||||
('Response')
|
||||
},
|
||||
|
|
@ -308,7 +308,7 @@ sub listing_ {
|
|||
}
|
||||
|
||||
sub load($id) {
|
||||
open my $fn, '<', "$FU::debug_info->{storage}/fu-$id.txt" or fu->error(404);
|
||||
open my $fn, '<', "$FU::debug_info->{storage}/fu-$id.txt" or fu->notfound;
|
||||
scalar <$fn>;
|
||||
local $/=undef;
|
||||
fu->set_body(scalar <$fn>);
|
||||
|
|
@ -322,12 +322,12 @@ sub render {
|
|||
fu->set_body(framework_ collect);
|
||||
} elsif ($q eq 'last') {
|
||||
my $lst = listing;
|
||||
fu->error(404) if !@$lst;
|
||||
fu->notfound if !@$lst;
|
||||
load $lst->[$#$lst];
|
||||
} elsif ($FU::debug_info->{storage} && $q =~ /^[0-9a-f]{22}$/) {
|
||||
load $q;
|
||||
} else {
|
||||
fu->error(404);
|
||||
fu->notfound
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue