diff --git a/lib/PiTube/Controller/Nginx.pm b/lib/PiTube/Controller/Nginx.pm index 789af4a5fbc2335a5f6d46772e528b845ffa4d48..82a6c1b6620b90972471e335814ae03580ffb244 100644 --- a/lib/PiTube/Controller/Nginx.pm +++ b/lib/PiTube/Controller/Nginx.pm @@ -86,15 +86,20 @@ sub callback_recorder { sub callback_hls { my $c = shift; + my $code = 403; + if ($c->req->headers->header('X-Original-URI') =~ HLS ) { - if ( $c->session->{user}{acl}{ $1 } & 4 ) { #TODO: constant - $c->render( status => 204, text => '' ); - return; + $code = 204 if $c->session->{user}{acl}{ $1 } & 4; + + if (! $code) { + my $is_public = $c->schema->resultset('Stream')->count({ + key => $1, is_public => 't' + }); + $code = 204 if $is_public; } } - $c->render( status => 403, text => ''); - + $c->render( status => $code, text => ''); } sub callback_record {