audiorecordings.pm: connect locally to detect permissions
This commit is contained in:
@@ -31,7 +31,6 @@ sub get($$) {
|
||||
if ( defined $condition->{date_range_include} ) && ( $condition->{date_range_include} == 1 );
|
||||
|
||||
my $dbh = db::connect($config);
|
||||
|
||||
my $conditions = [];
|
||||
my $bind_values = [];
|
||||
|
||||
@@ -93,12 +92,45 @@ sub get($$) {
|
||||
return $entries;
|
||||
}
|
||||
|
||||
sub update_active($$) {
|
||||
my ($config, $entry) = @_;
|
||||
|
||||
return undef unless defined $entry->{project_id};
|
||||
return undef unless defined $entry->{studio_id};
|
||||
return undef unless defined $entry->{event_id};
|
||||
|
||||
my $dbh = db::connect($config);
|
||||
my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{event_id} ];
|
||||
my $query = qq{
|
||||
update calcms_audio_recordings
|
||||
set active=0
|
||||
where project_id=? and studio_id=? and event_id=? and active=1
|
||||
};
|
||||
db::put( $dbh, $query, $bind_values );
|
||||
|
||||
$query = qq{
|
||||
select max(id) id from calcms_audio_recordings
|
||||
where project_id=? and studio_id=? and event_id=?
|
||||
};
|
||||
my $entries = db::get( $dbh, $query, $bind_values );
|
||||
my $max = $entries->[0];
|
||||
return undef unless defined $max->{id};
|
||||
|
||||
$query = qq{
|
||||
update calcms_audio_recordings
|
||||
set active=1
|
||||
where id=?
|
||||
};
|
||||
return db::put( $dbh, $query, [$max->{id}] );
|
||||
}
|
||||
|
||||
# update playout entry if differs to old values
|
||||
sub update($$$) {
|
||||
my ($config, $dbh, $entry) = @_;
|
||||
sub update($$) {
|
||||
my ($config, $entry) = @_;
|
||||
|
||||
my $day_start = $config->{date}->{day_starting_hour};
|
||||
|
||||
my $dbh = db::connect($config);
|
||||
my $bind_values = [
|
||||
$entry->{path}, $entry->{size},
|
||||
$entry->{created_by}, $entry->{created_at},
|
||||
@@ -124,19 +156,20 @@ sub update($$$) {
|
||||
push @$bind_values, $entry->{id};
|
||||
}
|
||||
my $result = db::put( $dbh, $query, $bind_values );
|
||||
update_active($config, $dbh, $entry);
|
||||
update_active($config, $entry);
|
||||
return $result;
|
||||
}
|
||||
|
||||
# insert playout entry
|
||||
sub insert ($$$) {
|
||||
my ($config, $dbh, $entry) = @_;
|
||||
sub insert ($$) {
|
||||
my ($config, $entry) = @_;
|
||||
|
||||
return undef unless defined $entry->{project_id};
|
||||
return undef unless defined $entry->{studio_id};
|
||||
return undef unless defined $entry->{event_id};
|
||||
return undef unless defined $entry->{path};
|
||||
|
||||
my $dbh = db::connect($config);
|
||||
$entry = {
|
||||
project_id => $entry->{project_id},
|
||||
studio_id => $entry->{studio_id},
|
||||
@@ -153,19 +186,20 @@ sub insert ($$$) {
|
||||
};
|
||||
|
||||
my $result = db::insert( $dbh, 'calcms_audio_recordings', $entry );
|
||||
update_active($config, $dbh, $entry);
|
||||
update_active($config, $entry);
|
||||
return $result;
|
||||
}
|
||||
|
||||
# delete playout entry
|
||||
sub delete ($$$) {
|
||||
my ($config, $dbh, $entry) = @_;
|
||||
sub delete ($$) {
|
||||
my ($config, $entry) = @_;
|
||||
|
||||
return undef unless defined $entry->{project_id};
|
||||
return undef unless defined $entry->{studio_id};
|
||||
return undef unless defined $entry->{event_id};
|
||||
return undef unless defined $entry->{path};
|
||||
|
||||
my $dbh = db::connect($config);
|
||||
my $query = qq{
|
||||
delete
|
||||
from calcms_audio_recordings
|
||||
@@ -174,41 +208,10 @@ sub delete ($$$) {
|
||||
my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{event_id}, $entry->{path} ];
|
||||
my $result = db::put( $dbh, $query, $bind_values );
|
||||
|
||||
update_active($config, $dbh, $entry);
|
||||
update_active($config, $entry);
|
||||
return $result;
|
||||
}
|
||||
|
||||
sub update_active($$$) {
|
||||
my ($config, $dbh, $entry) = @_;
|
||||
|
||||
return undef unless defined $entry->{project_id};
|
||||
return undef unless defined $entry->{studio_id};
|
||||
return undef unless defined $entry->{event_id};
|
||||
|
||||
my $bind_values = [ $entry->{project_id}, $entry->{studio_id}, $entry->{event_id} ];
|
||||
my $query = qq{
|
||||
update calcms_audio_recordings
|
||||
set active=0
|
||||
where project_id=? and studio_id=? and event_id=? and active=1
|
||||
};
|
||||
db::put( $dbh, $query, $bind_values );
|
||||
|
||||
$query = qq{
|
||||
select max(id) id from calcms_audio_recordings
|
||||
where project_id=? and studio_id=? and event_id=?
|
||||
};
|
||||
my $entries = db::get( $dbh, $query, $bind_values );
|
||||
my $max = $entries->[0];
|
||||
return undef unless defined $max->{id};
|
||||
|
||||
$query = qq{
|
||||
update calcms_audio_recordings
|
||||
set active=1
|
||||
where id=?
|
||||
};
|
||||
return db::put( $dbh, $query, [$max->{id}] );
|
||||
}
|
||||
|
||||
sub error($) {
|
||||
my $msg = shift;
|
||||
print "ERROR: $msg<br/>\n";
|
||||
|
||||
@@ -209,7 +209,6 @@ sub deleteRecording {
|
||||
}
|
||||
}
|
||||
|
||||
my $dbh = db::connect($config);
|
||||
$config->{access}->{write} = 0;
|
||||
|
||||
my $audioRecordings = audio_recordings::get(
|
||||
@@ -245,7 +244,7 @@ sub deleteRecording {
|
||||
|
||||
$config->{access}->{write} = 1;
|
||||
$audioRecordings = audio_recordings::delete(
|
||||
$config, $dbh,
|
||||
$config,
|
||||
{
|
||||
project_id => $params->{project_id},
|
||||
studio_id => $params->{studio_id},
|
||||
@@ -410,8 +409,6 @@ sub updateDatabase {
|
||||
};
|
||||
|
||||
#connect
|
||||
my $dbh = db::connect($config);
|
||||
|
||||
my $entries = audio_recordings::get(
|
||||
$config,
|
||||
{
|
||||
@@ -424,7 +421,7 @@ sub updateDatabase {
|
||||
|
||||
if ( ( defined $entries ) && ( scalar @$entries > 0 ) ) {
|
||||
print STDERR "update\n";
|
||||
audio_recordings::update( $config, $dbh, $entry );
|
||||
audio_recordings::update( $config, $entry );
|
||||
my $entry = $entries->[0];
|
||||
$params->{id} = $entry->{id};
|
||||
} else {
|
||||
@@ -436,7 +433,7 @@ sub updateDatabase {
|
||||
$entry->{rmsRight} = 0.0;
|
||||
$entry->{audioDuration} = 0.0;
|
||||
$entry->{modified_at} = time();
|
||||
$entry->{id} = audio_recordings::insert( $config, $dbh, $entry );
|
||||
$entry->{id} = audio_recordings::insert( $config, $entry );
|
||||
$params->{id} = $entry->{id};
|
||||
}
|
||||
call_hooks($config, $entry, $params);
|
||||
@@ -448,7 +445,6 @@ sub updateDatabase {
|
||||
sub call_hooks {
|
||||
my ($config, $entry, $params) = @_;
|
||||
print STDERR Dumper($config->{"audio-upload-hooks"});
|
||||
my $dbh = db::connect($config);
|
||||
|
||||
$entry = audio_recordings::get(
|
||||
$config, {
|
||||
@@ -468,7 +464,7 @@ sub call_hooks {
|
||||
$entry->{$key} = $value;
|
||||
die "invalid column $key for table calcms_audio_recordings"
|
||||
unless exists audio_recordings::get_columns($config)->{$key};
|
||||
audio_recordings::update( $config, $dbh, $entry );
|
||||
audio_recordings::update( $config, $entry );
|
||||
} elsif ($line =~ m/^calcms_events\.([a-zA-Z0-9_-]+)\s*=\s*(\S+)/) {
|
||||
my ($key, $value) = ($1, $2);
|
||||
die "invalid column $key for calcms_events\n"
|
||||
|
||||
Reference in New Issue
Block a user