diff --git a/lib/PiTube/Controller/Stream.pm b/lib/PiTube/Controller/Stream.pm index 5e80a69b3047651221a9318d8b9ab12351552441..5417171f58e67ba5c88167be471b2ab5f3df79f3 100644 --- a/lib/PiTube/Controller/Stream.pm +++ b/lib/PiTube/Controller/Stream.pm @@ -20,8 +20,26 @@ sub list { { order_by => 'name' } ); - $c->stash->{streams} = $streams; + my @streams = (); + + STREAM: + while ( my $stream = $streams->next()) { + my $rights = $c->session->{user}{acl}{ $stream->key }; + next STREAM if ! $rights; + + push @streams, { + is_live => $stream->is_live, + key => $stream->key, + name => $stream->name, + publisher => $stream->is_live ? $stream->publish_user_name : '', + is_writeable => $c->is('publisher') + && $stream->is_writeable( $rights ), + is_recordable => $c->is('publisher') + && $stream->is_recordable( $c->session->{user}{username} ), + }; + } + $c->stash->{streams} = \@streams; } @@ -45,7 +63,7 @@ sub player { $c->stash->{stream} = $stream; - if ( ! $c->session->{user}{acl}{ $stream->key } ) { + if ( ! ( $c->session->{user}{acl}{ $stream->key } & 4 ) ) { # TODO:constant $c->render('stream/403'); return; }