From 16c228d428cfda68813f29525db99779c522d461 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrej=20Rama=C5=A1euski?= <andrej@x2.cz> Date: Sat, 31 Oct 2020 17:57:45 +0100 Subject: [PATCH] Zapracovana ACL --- lib/PiTube/Controller/Stream.pm | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/PiTube/Controller/Stream.pm b/lib/PiTube/Controller/Stream.pm index 5e80a69..5417171 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; } -- GitLab