diff --git a/lib/calcms/images.pm b/lib/calcms/images.pm index 5346fe2..18b9f2a 100644 --- a/lib/calcms/images.pm +++ b/lib/calcms/images.pm @@ -204,7 +204,7 @@ sub update { set $set where $conditions }; - print STDERR Dumper($query) . Dumper($bind_values); + #print STDERR Dumper($query) . Dumper($bind_values); my $result = db::put( $dbh, $query, $bind_values ); images::setSeriesLabels( $dbh, $image ); @@ -491,10 +491,10 @@ sub setEventLabels { where image=? }; my $bind_values = [ $image->{licence}, $image->{filename} ]; - print STDERR Dumper($query) . Dumper($bind_values); + #print STDERR Dumper($query) . Dumper($bind_values); my $results = db::put( $dbh, $query, $bind_values ); - print STDERR Dumper($results) . " changes\n"; + #print STDERR Dumper($results) . " changes\n"; return $results; } @@ -521,10 +521,10 @@ sub setSeriesLabels { where series_image=? }; my $bind_values = [ $image->{licence}, $image->{filename} ]; - print STDERR Dumper($query) . Dumper($bind_values); + #print STDERR Dumper($query) . Dumper($bind_values); my $results = db::put( $dbh, $query, $bind_values ); - print STDERR Dumper($results) . " changes\n"; + #print STDERR Dumper($results) . " changes\n"; return $results; } diff --git a/lib/calcms/markup.pm b/lib/calcms/markup.pm index 553205b..2d30522 100644 --- a/lib/calcms/markup.pm +++ b/lib/calcms/markup.pm @@ -307,7 +307,7 @@ sub plain_to_xml { } sub fix_utf8 { - $_[0] = decode( 'cp1252', $_[0] ); + $_[0] = Encode::decode( 'cp1252', $_[0] ); return $_[0]; } diff --git a/lib/calcms/studios.pm b/lib/calcms/studios.pm index 475ecee..8cbe95d 100644 --- a/lib/calcms/studios.pm +++ b/lib/calcms/studios.pm @@ -53,7 +53,7 @@ sub get { my $query = ''; unless ( ( defined $condition->{project_id} ) && ( $condition->{project_id} ne '' ) ) { my $conditions = ''; - $conditions = " where " . join( " and ", @conditions ) if ( @conditions > 0 ); + $conditions = " where " . join( " and ", @conditions ) if ( scalar @conditions > 0 ); $query = qq{ select * from calcms_studios s @@ -62,11 +62,10 @@ sub get { }; } else { push @conditions, 's.id=ps.studio_id'; - push @conditions, 'ps.project_id=?'; push @bind_values, $condition->{project_id}; - my $conditions = ''; - $condition .= " where " . join( " and ", @conditions ) if ( scalar @conditions > 0 ); + + my $conditions = " where " . join( " and ", @conditions ); $query = qq{ select * from calcms_studios s, calcms_project_studios ps diff --git a/website/agenda/planung/audio_recordings.cgi b/website/agenda/planung/audio_recordings.cgi index 4b41825..790834a 100755 --- a/website/agenda/planung/audio_recordings.cgi +++ b/website/agenda/planung/audio_recordings.cgi @@ -77,7 +77,7 @@ my $request = { url => $ENV{QUERY_STRING} || '', params => { original => $params, - checked => check_params($params), + checked => check_params($config, $params), }, }; @@ -540,6 +540,7 @@ sub getEventDuration { } sub check_params { + my $config = shift; my $params = shift; my $checked = {}; diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index 5d8cdcc..541cbad 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -4,7 +4,7 @@ use warnings "all"; use strict; use Data::Dumper; use URI::Escape(); -use Encode(); +#use Encode(); use utf8(); use params(); use config(); @@ -52,8 +52,6 @@ $params->{project_id} = $user_presets->{project_id} if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) ); $params->{expires} = $expires; -#print STDERR Dumper($params); - my $scriptName = 'calendar.cgi'; #add "all" studio to select box @@ -75,7 +73,7 @@ my $request = { url => $ENV{QUERY_STRING} || '', params => { original => $params, - checked => check_params( $params, $config ), + checked => check_params( $config, $params ), }, }; @@ -83,7 +81,6 @@ $request = uac::prepare_request( $request, $user_presets ); $params = $request->{params}->{checked}; -#print STDERR Dumper($request); if ( ( ( defined $params->{action} ) && ( ( $params->{action} eq 'show' ) @@ -1802,8 +1799,8 @@ sub getSeriesEvents { } sub check_params { - my $params = shift; my $config = shift; + my $params = shift; my $checked = {}; my $template = ''; diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index 573a9d7..e11c02a 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -32,7 +32,7 @@ my $r = shift; my $config = config::get('../config/config.cgi'); my $debug = $config->{system}->{debug}; my ( $user, $expires ) = auth::get_user( $cgi, $config ); -return if ( !defined $user ) || ( $user eq '' ) ; +return if ( !defined $user ) || ( $user eq '' ); my $user_presets = uac::get_user_presets( $config, @@ -52,7 +52,7 @@ my $request = { url => $ENV{QUERY_STRING} || '', params => { original => $params, - checked => check_params($params), + checked => check_params( $config, $params ), }, }; @@ -68,7 +68,7 @@ if ( ( params::isJson() ) || ( defined $params->{action} ) ) { } else { my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); - template::process($config, 'print', template::check($config, 'default.html'), $headerParams ); + template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); print q{ } unless (params::isJson); @@ -139,7 +139,7 @@ sub showComments { $events = comments::get_events( $dbh, $config, $request, $comments ); my $language = $config->{date}->{language} || 'en'; for my $event (@$events) { - $event->{start} = time::date_time_format($config, $event->{start}, $language ); + $event->{start} = time::date_time_format( $config, $event->{start}, $language ); $comment_count += $event->{comment_count} if ( defined $event->{comment_count} ); $event->{cache_base_url} = $config->{cache}->{base_url}; } @@ -157,20 +157,20 @@ sub showComments { $template_parameters->{projects} = project::get_with_dates($config); $template_parameters->{controllers} = $config->{controllers}; $template_parameters->{allow} = $permissions; - $template_parameters->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'comment' } ); + $template_parameters->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'comment' } ); #fill and output template - template::process($config, 'print', $params->{template}, $template_parameters ); + template::process( $config, 'print', $params->{template}, $template_parameters ); } sub modify_comments { - my $config = shift; + my $config = shift; my $request = shift; my $results = shift; my $language = $config->{date}->{language} || 'en'; for my $result (@$results) { - $result->{start_date_name} = time::date_format($config, $result->{created_at}, $language ); + $result->{start_date_name} = time::date_format( $config, $result->{created_at}, $language ); $result->{start_time_name} = time::time_format( $result->{created_at} ); $result->{ $result->{lock_status} } = 1; $result->{ $result->{news_status} } = 1; @@ -238,6 +238,7 @@ sub setRead { } sub check_params { + my $config = shift; my $params = shift; my $checked = {}; @@ -253,9 +254,9 @@ sub check_params { #template my $template = ''; if ( defined $checked->{action} ) { - $template = template::check($config, $params->{template}, 'edit_comment' ) if $checked->{action} eq 'showComment'; + $template = template::check( $config, $params->{template}, 'edit_comment' ) if $checked->{action} eq 'showComment'; } else { - $template = template::check($config, $params->{template}, 'comments' ); + $template = template::check( $config, $params->{template}, 'comments' ); } $checked->{template} = $template; diff --git a/website/agenda/planung/create_events.cgi b/website/agenda/planung/create_events.cgi index eece38c..91c7394 100755 --- a/website/agenda/planung/create_events.cgi +++ b/website/agenda/planung/create_events.cgi @@ -30,12 +30,12 @@ return if ( ( !defined $user ) || ( $user eq '' ) ); #print STDERR $params->{project_id}."\n"; my $user_presets = uac::get_user_presets( - $config, - { - project_id => $params->{project_id}, - studio_id => $params->{studio_id}, - user => $user - } + $config, + { + project_id => $params->{project_id}, + studio_id => $params->{studio_id}, + user => $user + } ); $params->{default_studio_id} = $user_presets->{studio_id}; $params->{studio_id} = $params->{default_studio_id} @@ -45,11 +45,11 @@ $params->{project_id} = $user_presets->{project_id} #print STDERR $params->{project_id}."\n"; my $request = { - url => $ENV{QUERY_STRING} || '', - params => { - original => $params, - checked => check_params($params), - }, + url => $ENV{QUERY_STRING} || '', + params => { + original => $params, + checked => check_params( $config, $params ), + }, }; $request = uac::prepare_request( $request, $user_presets ); @@ -58,7 +58,7 @@ $params = $request->{params}->{checked}; #process header my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); -template::process($config, 'print', template::check($config, 'default.html'), $headerParams ); +template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); return unless uac::check( $config, $params, $user_presets ) == 1; print q{ @@ -70,148 +70,149 @@ print q{ my $permissions = $request->{permissions}; unless ( $permissions->{create_event_from_schedule} == 1 ) { - uac::permissions_denied('create_event_from_schedule'); - return; + uac::permissions_denied('create_event_from_schedule'); + return; } if ( $params->{action} eq 'create_events' ) { - create_events( $config, $request ); + create_events( $config, $request ); } else { - show_events( $config, $request ); + show_events( $config, $request ); } sub show_events { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{assign_series_events} == 1 ) { - uac::permissions_denied('assign_series_events'); - return; - } - template::process($config, 'print', $params->{template}, $params ); + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{assign_series_events} == 1 ) { + uac::permissions_denied('assign_series_events'); + return; + } + template::process( $config, 'print', $params->{template}, $params ); } sub create_events { - my $config = shift; - my $request = shift; + my $config = shift; + my $request = shift; - my $params = $request->{params}->{checked}; - my $permissions = $request->{permissions}; - unless ( $permissions->{assign_series_events} == 1 ) { - uac::permissions_denied('assign_series_events'); - return; - } + my $params = $request->{params}->{checked}; + my $permissions = $request->{permissions}; + unless ( $permissions->{assign_series_events} == 1 ) { + uac::permissions_denied('assign_series_events'); + return; + } - print STDERR "create events\n"; + print STDERR "create events\n"; - my $project_id = $params->{project_id}; - my $studio_id = $params->{studio_id}; - my $from_date = $params->{from_date}; - my $till_date = $params->{till_date}; - my $duration = $params->{duration}; + my $project_id = $params->{project_id}; + my $studio_id = $params->{studio_id}; + my $from_date = $params->{from_date}; + my $till_date = $params->{till_date}; + my $duration = $params->{duration}; - $from_date = time::time_to_datetime(); - if ( $from_date =~ /(\d\d\d\d\-\d\d\-\d\d \d\d)/ ) { - $from_date = $1 . ':00'; - } - $till_date = time::add_days_to_datetime( $from_date, $duration ); - if ( $from_date =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) { - $from_date = $1; - } - if ( $till_date =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) { - $till_date = $1; - } - $params->{from_date} = $from_date; - $params->{till_date} = $till_date; + $from_date = time::time_to_datetime(); + if ( $from_date =~ /(\d\d\d\d\-\d\d\-\d\d \d\d)/ ) { + $from_date = $1 . ':00'; + } + $till_date = time::add_days_to_datetime( $from_date, $duration ); + if ( $from_date =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) { + $from_date = $1; + } + if ( $till_date =~ /(\d\d\d\d\-\d\d\-\d\d)/ ) { + $till_date = $1; + } + $params->{from_date} = $from_date; + $params->{till_date} = $till_date; - print STDERR "create events from $from_date to $till_date\n"; + print STDERR "create events from $from_date to $till_date\n"; - my $dates = series_dates::getDatesWithoutEvent( - $config, - { - project_id => $project_id, - studio_id => $studio_id, - from => $from_date, - till => $till_date - } - ); - print STDERR "
found " . ( scalar @$dates ) . " dates\n";
- my $events = [];
- for my $date (@$dates) {
+ my $dates = series_dates::getDatesWithoutEvent(
+ $config,
+ {
+ project_id => $project_id,
+ studio_id => $studio_id,
+ from => $from_date,
+ till => $till_date
+ }
+ );
+ print STDERR "found " . ( scalar @$dates ) . " dates\n";
+ my $events = [];
+ for my $date (@$dates) {
- #print STDERR $date->{start}."\n";
- push @$events, createEvent( $config, $request, $date );
- }
- $params->{created_events} = $events;
- $params->{created_total} = scalar(@$events);
- template::process($config, 'print', $params->{template}, $params );
+ #print STDERR $date->{start}."\n";
+ push @$events, createEvent( $config, $request, $date );
+ }
+ $params->{created_events} = $events;
+ $params->{created_total} = scalar(@$events);
+ template::process( $config, 'print', $params->{template}, $params );
}
sub createEvent {
- my $config = shift;
- my $request = shift;
- my $date = shift;
+ my $config = shift;
+ my $request = shift;
+ my $date = shift;
- my $permissions = $request->{permissions};
- my $user = $request->{user};
+ my $permissions = $request->{permissions};
+ my $user = $request->{user};
- $date->{show_new_event_from_schedule} = 1;
- unless ( $permissions->{create_event_from_schedule} == 1 ) {
- uac::permissions_denied('create_event_from_schedule');
- return;
- }
+ $date->{show_new_event_from_schedule} = 1;
+ unless ( $permissions->{create_event_from_schedule} == 1 ) {
+ uac::permissions_denied('create_event_from_schedule');
+ return;
+ }
- $date->{start_date} = $date->{start};
- my $event = eventOps::getNewEvent( $config, $date, 'show_new_event_from_schedule' );
+ $date->{start_date} = $date->{start};
+ my $event = eventOps::getNewEvent( $config, $date, 'show_new_event_from_schedule' );
- return undef unless defined $event;
+ return undef unless defined $event;
- $event->{start_date} = $event->{start};
- eventOps::createEvent( $request, $event, 'create_event_from_schedule' );
- print STDERR Dumper($date);
- return $event;
+ $event->{start_date} = $event->{start};
+ eventOps::createEvent( $request, $event, 'create_event_from_schedule' );
+ print STDERR Dumper($date);
+ return $event;
}
sub check_params {
- my $params = shift;
+ my $config = shift;
+ my $params = shift;
- my $checked = {};
+ my $checked = {};
- my $debug = $params->{debug} || '';
- if ( $debug =~ /([a-z\_\,]+)/ ) {
- $debug = $1;
- }
- $checked->{debug} = $debug;
+ my $debug = $params->{debug} || '';
+ if ( $debug =~ /([a-z\_\,]+)/ ) {
+ $debug = $1;
+ }
+ $checked->{debug} = $debug;
- #actions and roles
- $checked->{action} = '';
- if ( defined $params->{action} ) {
- if ( $params->{action} =~ /^(create_events)$/ ) {
- $checked->{action} = $params->{action};
- }
- }
+ #actions and roles
+ $checked->{action} = '';
+ if ( defined $params->{action} ) {
+ if ( $params->{action} =~ /^(create_events)$/ ) {
+ $checked->{action} = $params->{action};
+ }
+ }
- #numeric values
- $checked->{exclude} = 0;
- $checked->{duration} = 28;
- for my $param ( 'id', 'project_id', 'studio_id', 'duration' ) {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
- $checked->{$param} = $params->{$param};
- }
- }
+ #numeric values
+ $checked->{exclude} = 0;
+ $checked->{duration} = 28;
+ for my $param ( 'id', 'project_id', 'studio_id', 'duration' ) {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
+ $checked->{$param} = $params->{$param};
+ }
+ }
- if ( defined $checked->{studio_id} ) {
- $checked->{default_studio_id} = $checked->{studio_id};
- } else {
- $checked->{studio_id} = -1;
- }
+ if ( defined $checked->{studio_id} ) {
+ $checked->{default_studio_id} = $checked->{studio_id};
+ } else {
+ $checked->{studio_id} = -1;
+ }
- $checked->{template} = template::check($config, $params->{template}, 'create_events' );
+ $checked->{template} = template::check( $config, $params->{template}, 'create_events' );
- return $checked;
+ return $checked;
}
diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi
index 7ffdca3..87cef7f 100755
--- a/website/agenda/planung/event.cgi
+++ b/website/agenda/planung/event.cgi
@@ -43,12 +43,12 @@ my ( $user, $expires ) = auth::get_user( $cgi, $config );
return if ( ( !defined $user ) || ( $user eq '' ) );
my $user_presets = uac::get_user_presets(
- $config,
- {
- user => $user,
- project_id => $params->{project_id},
- studio_id => $params->{studio_id}
- }
+ $config,
+ {
+ user => $user,
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id}
+ }
);
$params->{default_studio_id} = $user_presets->{studio_id};
$params->{studio_id} = $params->{default_studio_id}
@@ -57,11 +57,11 @@ $params->{project_id} = $user_presets->{project_id}
if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) );
my $request = {
- url => $ENV{QUERY_STRING} || '',
- params => {
- original => $params,
- checked => check_params($params),
- },
+ url => $ENV{QUERY_STRING} || '',
+ params => {
+ original => $params,
+ checked => check_params( $config, $params ),
+ },
};
#print STDERR Dumper($request)."\n";
@@ -73,9 +73,9 @@ $params = $request->{params}->{checked};
#show header
unless ( params::isJson() ) {
- my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
- $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
- template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
+ my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
+ $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
+ template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams );
}
return unless defined uac::check( $config, $params, $user_presets );
@@ -86,774 +86,775 @@ print q{
} unless (params::isJson);
if ( defined $params->{action} ) {
- if ( ( $params->{action} eq 'show_new_event' )
- || ( $params->{action} eq 'show_new_event_from_schedule' ) )
- {
- show_new_event( $config, $request );
- return;
- }
+ if ( ( $params->{action} eq 'show_new_event' )
+ || ( $params->{action} eq 'show_new_event_from_schedule' ) )
+ {
+ show_new_event( $config, $request );
+ return;
+ }
- if ( ( $params->{action} eq 'create_event' )
- || ( $params->{action} eq 'create_event_from_schedule' ) )
- {
- $params->{event_id} = create_event( $config, $request );
- unless ( defined $params->{event_id} ) {
- uac::print_error("failed");
- return;
- }
- }
- if ( $params->{action} eq 'get_json' ) {
- getJson( $config, $request );
- return;
- }
- if ( $params->{action} eq 'delete' ) { delete_event( $config, $request ) }
- if ( $params->{action} eq 'save' ) { save_event( $config, $request ) }
- if ( $params->{action} eq 'download' ) { download( $config, $request ) }
+ if ( ( $params->{action} eq 'create_event' )
+ || ( $params->{action} eq 'create_event_from_schedule' ) )
+ {
+ $params->{event_id} = create_event( $config, $request );
+ unless ( defined $params->{event_id} ) {
+ uac::print_error("failed");
+ return;
+ }
+ }
+ if ( $params->{action} eq 'get_json' ) {
+ getJson( $config, $request );
+ return;
+ }
+ if ( $params->{action} eq 'delete' ) { delete_event( $config, $request ) }
+ if ( $params->{action} eq 'save' ) { save_event( $config, $request ) }
+ if ( $params->{action} eq 'download' ) { download( $config, $request ) }
}
$config->{access}->{write} = 0;
show_event( $config, $request );
#show existing event for edit
sub show_event {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
- for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) {
- unless ( defined $params->{$attr} ) {
- uac::print_error( "missing " . $attr . " to show event" );
- return;
- }
- }
+ for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) {
+ unless ( defined $params->{$attr} ) {
+ uac::print_error( "missing " . $attr . " to show event" );
+ return;
+ }
+ }
- my $result = series_events::check_permission(
- $request,
- {
- permission => 'update_event_of_series,update_event_of_others',
- check_for => [ 'studio', 'user', 'series', 'events' ],
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- series_id => $params->{series_id},
- event_id => $params->{event_id}
- }
- );
- unless ( $result eq '1' ) {
- uac::print_error($result);
- return undef;
- }
- $permissions->{update_event} = 1;
- print STDERR "check series permission ok\n";
+ my $result = series_events::check_permission(
+ $request,
+ {
+ permission => 'update_event_of_series,update_event_of_others',
+ check_for => [ 'studio', 'user', 'series', 'events' ],
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ series_id => $params->{series_id},
+ event_id => $params->{event_id}
+ }
+ );
+ unless ( $result eq '1' ) {
+ uac::print_error($result);
+ return undef;
+ }
+ $permissions->{update_event} = 1;
+ print STDERR "check series permission ok\n";
- #TODO: move to JS
- my @durations = ();
- for my $duration ( @{ time::getDurations() } ) {
- my $entry = {
- name => sprintf( "%02d:%02d", $duration / 60, $duration % 60 ),
- value => $duration
- };
- push @durations, $entry;
- }
+ #TODO: move to JS
+ my @durations = ();
+ for my $duration ( @{ time::getDurations() } ) {
+ my $entry = {
+ name => sprintf( "%02d:%02d", $duration / 60, $duration % 60 ),
+ value => $duration
+ };
+ push @durations, $entry;
+ }
- my $event = series::get_event(
- $config,
- {
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- series_id => $params->{series_id},
- event_id => $params->{event_id}
- }
- );
- unless ( defined $event ) {
- uac::print_error("event not found");
- }
+ my $event = series::get_event(
+ $config,
+ {
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ series_id => $params->{series_id},
+ event_id => $params->{event_id}
+ }
+ );
+ unless ( defined $event ) {
+ uac::print_error("event not found");
+ }
- #print STDERR "show:".Dumper($event->{draft});
- #print STDERR "show event".Dumper($event);
+ #print STDERR "show:".Dumper($event->{draft});
+ #print STDERR "show event".Dumper($event);
- my $editLock = 1;
- if ( ( defined $permissions->{update_event_after_week} ) && ( $permissions->{update_event_after_week} eq '1' ) ) {
- $editLock = 0;
- } else {
- $editLock = 0
- if (
- series::is_event_older_than_days(
- $config,
- {
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- series_id => $params->{series_id},
- event_id => $params->{event_id},
- max_age => 14
- }
- ) == 0
- );
- }
+ my $editLock = 1;
+ if ( ( defined $permissions->{update_event_after_week} ) && ( $permissions->{update_event_after_week} eq '1' ) ) {
+ $editLock = 0;
+ } else {
+ $editLock = 0
+ if (
+ series::is_event_older_than_days(
+ $config,
+ {
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ series_id => $params->{series_id},
+ event_id => $params->{event_id},
+ max_age => 14
+ }
+ ) == 0
+ );
+ }
- # for rerun, deprecated
- if ( defined $params->{source_event_id} ) {
- my $event2 = series::get_event(
- $config,
- {
- allow_any => 1,
+ # for rerun, deprecated
+ if ( defined $params->{source_event_id} ) {
+ my $event2 = series::get_event(
+ $config,
+ {
+ allow_any => 1,
- #project_id => $params->{project_id},
- #studio_id => $params->{studio_id},
- #series_id => $params->{series_id},
- event_id => $params->{source_event_id},
- draft => 0,
- }
- );
- if ( defined $event2 ) {
- for my $attr (
- 'title', 'user_title', 'excerpt', 'user_excerpt',
- 'content', 'topic', 'image', 'image_label',
- 'series_image', 'series_image_label', 'live no_event_sync', 'podcast_url',
- 'archive_url'
- )
- {
- $event->{$attr} = $event2->{$attr};
- }
- $event->{recurrence} = eventOps::getRecurrenceBaseId($event2);
- $event->{rerun} = 1;
- }
- }
+ #project_id => $params->{project_id},
+ #studio_id => $params->{studio_id},
+ #series_id => $params->{series_id},
+ event_id => $params->{source_event_id},
+ draft => 0,
+ }
+ );
+ if ( defined $event2 ) {
+ for my $attr (
+ 'title', 'user_title', 'excerpt', 'user_excerpt',
+ 'content', 'topic', 'image', 'image_label',
+ 'series_image', 'series_image_label', 'live no_event_sync', 'podcast_url',
+ 'archive_url'
+ )
+ {
+ $event->{$attr} = $event2->{$attr};
+ }
+ $event->{recurrence} = eventOps::getRecurrenceBaseId($event2);
+ $event->{rerun} = 1;
+ }
+ }
- $event->{rerun} = 1 if ( $event->{rerun} =~ /a-z/ );
- $event->{series_id} = $params->{series_id};
+ $event->{rerun} = 1 if ( $event->{rerun} =~ /a-z/ );
+ $event->{series_id} = $params->{series_id};
- $event->{duration} = events::get_duration( $config, $event );
- $event->{durations} = \@durations;
- if ( defined $event->{duration} ) {
- for my $duration ( @{ $event->{durations} } ) {
- $duration->{selected} = 1 if ( $event->{duration} eq $duration->{value} );
- }
- }
- $event->{start} =~ s/(\d\d:\d\d)\:\d\d/$1/;
- $event->{end} =~ s/(\d\d:\d\d)\:\d\d/$1/;
+ $event->{duration} = events::get_duration( $config, $event );
+ $event->{durations} = \@durations;
+ if ( defined $event->{duration} ) {
+ for my $duration ( @{ $event->{durations} } ) {
+ $duration->{selected} = 1 if ( $event->{duration} eq $duration->{value} );
+ }
+ }
+ $event->{start} =~ s/(\d\d:\d\d)\:\d\d/$1/;
+ $event->{end} =~ s/(\d\d:\d\d)\:\d\d/$1/;
- # overwrite event with old one
- #my $series_events=get_series_events($config,{
- # project_id => $params->{project_id},
- # studio_id => $params->{studio_id},
- # series_id => $params->{series_id}
- #});
- #my @series_events=();
- #for my $series_event (@$series_events){
- # push @series_events, $series_event if ($series_event->{start} lt $event->{start});
- #}
- #$params->{series_events}=\@series_events;
+ # overwrite event with old one
+ #my $series_events=get_series_events($config,{
+ # project_id => $params->{project_id},
+ # studio_id => $params->{studio_id},
+ # series_id => $params->{series_id}
+ #});
+ #my @series_events=();
+ #for my $series_event (@$series_events){
+ # push @series_events, $series_event if ($series_event->{start} lt $event->{start});
+ #}
+ #$params->{series_events}=\@series_events;
- # get all series
- #my $series=series::get(
- # $config,{
- # project_id => $params->{project_id},
- # studio_id => $params->{studio_id},
- # }
- #);
- #for my $serie (@$series){
- # $serie->{selected}=1 if $params->{series_id}==$serie->{series_id};
- #}
- #$params->{series}=$series;
+ # get all series
+ #my $series=series::get(
+ # $config,{
+ # project_id => $params->{project_id},
+ # studio_id => $params->{studio_id},
+ # }
+ #);
+ #for my $serie (@$series){
+ # $serie->{selected}=1 if $params->{series_id}==$serie->{series_id};
+ #}
+ #$params->{series}=$series;
- # get event series
- my $series = series::get(
- $config,
- {
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- series_id => $params->{series_id}
- }
- );
- if ( scalar(@$series) == 1 ) {
- $event->{has_single_events} = $series->[0]->{has_single_events};
- }
+ # get event series
+ my $series = series::get(
+ $config,
+ {
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ series_id => $params->{series_id}
+ }
+ );
+ if ( scalar(@$series) == 1 ) {
+ $event->{has_single_events} = $series->[0]->{has_single_events};
+ }
- #$event->{rerun}=1 if ((defined $event->{rerun})&&($event->{rerun}ne'0')&&($event->{rerun}ne''));
+ #$event->{rerun}=1 if ((defined $event->{rerun})&&($event->{rerun}ne'0')&&($event->{rerun}ne''));
- my $users = series::get_users(
- $config,
- {
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- series_id => $params->{series_id}
- }
- );
- $params->{series_users} = $users;
+ my $users = series::get_users(
+ $config,
+ {
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ series_id => $params->{series_id}
+ }
+ );
+ $params->{series_users} = $users;
- #print STDERR Dumper($users);
- $params->{series_users_email_list} = join( ',', ( map { $_->{email} } (@$users) ) );
- $params->{series_user_names} = join( ' und ', ( map { ( split( /\s+/, $_->{full_name} ) )[0] } (@$users) ) );
+ #print STDERR Dumper($users);
+ $params->{series_users_email_list} = join( ',', ( map { $_->{email} } (@$users) ) );
+ $params->{series_user_names} = join( ' und ', ( map { ( split( /\s+/, $_->{full_name} ) )[0] } (@$users) ) );
- for my $permission ( sort keys %{$permissions} ) {
- $params->{'allow'}->{$permission} = $permissions->{$permission};
- }
+ for my $permission ( sort keys %{$permissions} ) {
+ $params->{'allow'}->{$permission} = $permissions->{$permission};
+ }
- for my $key ( keys %$event ) {
- $params->{$key} = $event->{$key};
- }
- $params->{event_edited} = 1 if ( ( $params->{action} eq 'save' ) && ( !( defined $params->{error} ) ) );
- $params->{event_edited} = 1 if ( $params->{action} eq 'delete' );
- $params->{event_edited} = 1 if ( ( $params->{action} eq 'create_event' ) && ( !( defined $params->{error} ) ) );
- $params->{event_edited} = 1 if ( ( $params->{action} eq 'create_event_from_schedule' ) && ( !( defined $params->{error} ) ) );
- $params->{user} = $params->{presets}->{user};
+ for my $key ( keys %$event ) {
+ $params->{$key} = $event->{$key};
+ }
+ $params->{event_edited} = 1 if ( ( $params->{action} eq 'save' ) && ( !( defined $params->{error} ) ) );
+ $params->{event_edited} = 1 if ( $params->{action} eq 'delete' );
+ $params->{event_edited} = 1 if ( ( $params->{action} eq 'create_event' ) && ( !( defined $params->{error} ) ) );
+ $params->{event_edited} = 1 if ( ( $params->{action} eq 'create_event_from_schedule' ) && ( !( defined $params->{error} ) ) );
+ $params->{user} = $params->{presets}->{user};
- # remove all edit permissions if event is over for more than 2 weeks
- if ( $editLock == 1 ) {
- for my $key ( keys %$params ) {
- unless ( $key =~ /create_download/ ) {
- delete $params->{allow}->{$key} if $key =~ /^(update|delete|create|assign)/;
- }
- }
- $params->{edit_lock} = 1;
- }
+ # remove all edit permissions if event is over for more than 2 weeks
+ if ( $editLock == 1 ) {
+ for my $key ( keys %$params ) {
+ unless ( $key =~ /create_download/ ) {
+ delete $params->{allow}->{$key} if $key =~ /^(update|delete|create|assign)/;
+ }
+ }
+ $params->{edit_lock} = 1;
+ }
- #print STDERR Dumper($params);
- $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event' } );
- template::process($config, 'print', template::check($config, 'edit_event'), $params );
+ #print STDERR Dumper($params);
+ $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event' } );
+ template::process( $config, 'print', template::check( $config, 'edit_event' ), $params );
}
sub getJson {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
- for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) {
- unless ( defined $params->{$attr} ) {
- uac::print_error( "missing " . $attr . " to show event" );
- return;
- }
- }
+ for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) {
+ unless ( defined $params->{$attr} ) {
+ uac::print_error( "missing " . $attr . " to show event" );
+ return;
+ }
+ }
- my $result = series_events::check_permission(
- $request,
- {
- permission => 'update_event_of_series,update_event_of_others',
- check_for => [ 'studio', 'user', 'series', 'events' ],
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- series_id => $params->{series_id},
- event_id => $params->{event_id}
- }
- );
- unless ( $result eq '1' ) {
- uac::print_error($result);
- return undef;
- }
- $permissions->{update_event} = 1;
+ my $result = series_events::check_permission(
+ $request,
+ {
+ permission => 'update_event_of_series,update_event_of_others',
+ check_for => [ 'studio', 'user', 'series', 'events' ],
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ series_id => $params->{series_id},
+ event_id => $params->{event_id}
+ }
+ );
+ unless ( $result eq '1' ) {
+ uac::print_error($result);
+ return undef;
+ }
+ $permissions->{update_event} = 1;
- my $event = series::get_event(
- $config,
- {
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- series_id => $params->{series_id},
- event_id => $params->{event_id}
- }
- );
- unless ( defined $event ) {
- uac::print_error("event not found");
- }
+ my $event = series::get_event(
+ $config,
+ {
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ series_id => $params->{series_id},
+ event_id => $params->{event_id}
+ }
+ );
+ unless ( defined $event ) {
+ uac::print_error("event not found");
+ }
- $event->{rerun} = 1 if ( $event->{rerun} =~ /a-z/ );
- $event->{series_id} = $params->{series_id};
- $event->{start} =~ s/(\d\d:\d\d)\:\d\d/$1/;
- $event->{end} =~ s/(\d\d:\d\d)\:\d\d/$1/;
+ $event->{rerun} = 1 if ( $event->{rerun} =~ /a-z/ );
+ $event->{series_id} = $params->{series_id};
+ $event->{start} =~ s/(\d\d:\d\d)\:\d\d/$1/;
+ $event->{end} =~ s/(\d\d:\d\d)\:\d\d/$1/;
- # get event series
- my $series = series::get(
- $config,
- {
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- series_id => $params->{series_id}
- }
- );
+ # get event series
+ my $series = series::get(
+ $config,
+ {
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ series_id => $params->{series_id}
+ }
+ );
- if ( scalar @$series == 1 ) {
- my $serie = $series->[0];
- $event->{has_single_events} = $serie->{has_single_events};
- if ( $event->{has_single_events} eq '1' ) {
- $event->{has_single_events} = 1;
- $event->{series_name} = undef;
- $event->{episode} = undef;
- }
- }
+ if ( scalar @$series == 1 ) {
+ my $serie = $series->[0];
+ $event->{has_single_events} = $serie->{has_single_events};
+ if ( $event->{has_single_events} eq '1' ) {
+ $event->{has_single_events} = 1;
+ $event->{series_name} = undef;
+ $event->{episode} = undef;
+ }
+ }
- $event->{duration} = events::get_duration( $config, $event );
+ $event->{duration} = events::get_duration( $config, $event );
- # for rerun
- if ( $params->{get_rerun} == 1 ) {
- $event->{rerun} = 1;
- $event->{recurrence} = eventOps::getRecurrenceBaseId($event);
+ # for rerun
+ if ( $params->{get_rerun} == 1 ) {
+ $event->{rerun} = 1;
+ $event->{recurrence} = eventOps::getRecurrenceBaseId($event);
- #$event=events::calc_dates($config, $event);
- }
+ #$event=events::calc_dates($config, $event);
+ }
- #print to_json($event);
- template::process($config, 'print', 'json-p', $event );
+ #print to_json($event);
+ template::process( $config, 'print', 'json-p', $event );
}
#show new event from schedule
sub show_new_event {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
- if ( $params->{action} eq 'show_new_event' ) {
- $params->{show_new_event} = 1;
- unless ( $permissions->{create_event} == 1 ) {
- uac::permissions_denied('create_event');
- return;
- }
- } elsif ( $params->{action} eq 'show_new_event_from_schedule' ) {
- $params->{show_new_event_from_schedule} = 1;
- unless ( $permissions->{create_event_from_schedule} == 1 ) {
- uac::permissions_denied('create_event_from_schedule');
- return;
- }
- } else {
- uac::print_error("invalid action");
- return 1;
- }
+ if ( $params->{action} eq 'show_new_event' ) {
+ $params->{show_new_event} = 1;
+ unless ( $permissions->{create_event} == 1 ) {
+ uac::permissions_denied('create_event');
+ return;
+ }
+ } elsif ( $params->{action} eq 'show_new_event_from_schedule' ) {
+ $params->{show_new_event_from_schedule} = 1;
+ unless ( $permissions->{create_event_from_schedule} == 1 ) {
+ uac::permissions_denied('create_event_from_schedule');
+ return;
+ }
+ } else {
+ uac::print_error("invalid action");
+ return 1;
+ }
- my $event = eventOps::getNewEvent( $config, $params, $params->{action} );
+ my $event = eventOps::getNewEvent( $config, $params, $params->{action} );
- #copy event to template params
- for my $key ( keys %$event ) {
- $params->{$key} = $event->{$key};
- }
+ #copy event to template params
+ for my $key ( keys %$event ) {
+ $params->{$key} = $event->{$key};
+ }
- #add duration selectbox
- #TODO: move to javascript
- my @durations = ();
- for my $duration ( @{ time::getDurations() } ) {
- my $entry = {
- name => sprintf( "%02d:%02d", $duration / 60, $duration % 60 ),
- value => $duration
- };
- push @durations, $entry;
- }
- $params->{durations} = \@durations;
+ #add duration selectbox
+ #TODO: move to javascript
+ my @durations = ();
+ for my $duration ( @{ time::getDurations() } ) {
+ my $entry = {
+ name => sprintf( "%02d:%02d", $duration / 60, $duration % 60 ),
+ value => $duration
+ };
+ push @durations, $entry;
+ }
+ $params->{durations} = \@durations;
- #set duration preset
- for my $duration ( @{ $params->{durations} } ) {
- $duration->{selected} = 1 if ( $event->{duration} eq $duration->{value} );
- }
+ #set duration preset
+ for my $duration ( @{ $params->{durations} } ) {
+ $duration->{selected} = 1 if ( $event->{duration} eq $duration->{value} );
+ }
- #check user permissions and then:
- $permissions->{update_event} = 1;
+ #check user permissions and then:
+ $permissions->{update_event} = 1;
- #set permissions to template
- for my $permission ( keys %{ $request->{permissions} } ) {
- $params->{'allow'}->{$permission} = $request->{permissions}->{$permission};
- }
+ #set permissions to template
+ for my $permission ( keys %{ $request->{permissions} } ) {
+ $params->{'allow'}->{$permission} = $request->{permissions}->{$permission};
+ }
- $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } );
- template::process( $config, 'print', template::check($config, 'edit_event'), $params );
+ $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event,comment' } );
+ template::process( $config, 'print', template::check( $config, 'edit_event' ), $params );
- #print ''.Dumper($params).'
';
+ #print ''.Dumper($params).'
';
}
sub delete_event {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
- my $event = {};
- for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) {
- unless ( defined $params->{$attr} ) {
- uac::print_error( "missing " . $attr );
- return;
- }
- $event->{$attr} = $params->{$attr};
- }
+ my $event = {};
+ for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) {
+ unless ( defined $params->{$attr} ) {
+ uac::print_error( "missing " . $attr );
+ return;
+ }
+ $event->{$attr} = $params->{$attr};
+ }
- my $result = series_events::check_permission(
- $request,
- {
- permission => 'delete_event',
- check_for => [ 'studio', 'user', 'series', 'events', 'event_age' ],
- project_id => $params->{project_id},
- studio_id => $event->{studio_id},
- series_id => $event->{series_id},
- event_id => $event->{event_id}
- }
- );
- unless ( $result eq '1' ) {
- uac::print_error($result);
- return undef;
- }
+ my $result = series_events::check_permission(
+ $request,
+ {
+ permission => 'delete_event',
+ check_for => [ 'studio', 'user', 'series', 'events', 'event_age' ],
+ project_id => $params->{project_id},
+ studio_id => $event->{studio_id},
+ series_id => $event->{series_id},
+ event_id => $event->{event_id}
+ }
+ );
+ unless ( $result eq '1' ) {
+ uac::print_error($result);
+ return undef;
+ }
- $config->{access}->{write} = 1;
+ $config->{access}->{write} = 1;
- #set user to be added to history
- $event->{user} = $params->{presets}->{user};
- $result = series_events::delete_event( $config, $event );
- unless ( defined $result ) {
- uac::print_error('could not delete event');
- return undef;
- }
+ #set user to be added to history
+ $event->{user} = $params->{presets}->{user};
+ $result = series_events::delete_event( $config, $event );
+ unless ( defined $result ) {
+ uac::print_error('could not delete event');
+ return undef;
+ }
- user_stats::increase(
- $config,
- 'delete_events',
- {
- project_id => $event->{project_id},
- studio_id => $event->{studio_id},
- series_id => $event->{series_id},
- user => $event->{user}
- }
- );
+ user_stats::increase(
+ $config,
+ 'delete_events',
+ {
+ project_id => $event->{project_id},
+ studio_id => $event->{studio_id},
+ series_id => $event->{series_id},
+ user => $event->{user}
+ }
+ );
- uac::print_info("event deleted");
+ uac::print_info("event deleted");
}
#save existing event
sub save_event {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
- for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) {
- unless ( defined $params->{$attr} ) {
- uac::print_error( "missing " . $attr . " to show event" );
- return;
- }
- }
+ for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) {
+ unless ( defined $params->{$attr} ) {
+ uac::print_error( "missing " . $attr . " to show event" );
+ return;
+ }
+ }
- #print Dumper($params);
- my $start = $params->{start_date};
- my $end = time::add_minutes_to_datetime( $params->{start_date}, $params->{duration} );
+ #print Dumper($params);
+ my $start = $params->{start_date};
+ my $end = time::add_minutes_to_datetime( $params->{start_date}, $params->{duration} );
- #check permissions
- my $options = {
- permission => 'update_event_of_series,update_event_of_others',
- check_for => [ 'studio', 'user', 'series', 'events', 'studio_timeslots', 'event_age' ],
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- series_id => $params->{series_id},
- event_id => $params->{event_id},
- draft => $params->{draft},
- start => $start,
- end => $end,
- };
+ #check permissions
+ my $options = {
+ permission => 'update_event_of_series,update_event_of_others',
+ check_for => [ 'studio', 'user', 'series', 'events', 'studio_timeslots', 'event_age' ],
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ series_id => $params->{series_id},
+ event_id => $params->{event_id},
+ draft => $params->{draft},
+ start => $start,
+ end => $end,
+ };
- my $result = series_events::check_permission( $request, $options );
- unless ( $result eq '1' ) {
- uac::print_error($result);
- return;
- }
+ my $result = series_events::check_permission( $request, $options );
+ unless ( $result eq '1' ) {
+ uac::print_error($result);
+ return;
+ }
- #changed columns depending on permissions
- my $entry = { id => $params->{event_id} };
+ #changed columns depending on permissions
+ my $entry = { id => $params->{event_id} };
- my $found = 0;
+ my $found = 0;
- #content fields
- for my $key (
- 'content', 'topic', 'title', 'excerpt', 'episode', 'image',
- 'series_image', 'image_label', 'series_image_label', 'podcast_url', 'archive_url'
- )
- {
- next unless defined $permissions->{ 'update_event_field_' . $key };
- if ( $permissions->{ 'update_event_field_' . $key } eq '1' ) {
- next unless defined $params->{$key};
- $entry->{$key} = $params->{$key};
- $found++;
- }
- }
+ #content fields
+ for my $key (
+ 'content', 'topic', 'title', 'excerpt', 'episode', 'image',
+ 'series_image', 'image_label', 'series_image_label', 'podcast_url', 'archive_url'
+ )
+ {
+ next unless defined $permissions->{ 'update_event_field_' . $key };
+ if ( $permissions->{ 'update_event_field_' . $key } eq '1' ) {
+ next unless defined $params->{$key};
+ $entry->{$key} = $params->{$key};
+ $found++;
+ }
+ }
- #print STDERR "event to update1: ".Dumper($entry);
+ #print STDERR "event to update1: ".Dumper($entry);
- #user extension fields
- for my $key ( 'title', 'excerpt' ) {
- next unless defined $permissions->{ 'update_event_field_' . $key . '_extension' };
- if ( $permissions->{ 'update_event_field_' . $key . '_extension' } eq '1' ) {
- next unless defined $params->{ 'user_' . $key };
- $entry->{ 'user_' . $key } = $params->{ 'user_' . $key };
- $found++;
- }
- }
+ #user extension fields
+ for my $key ( 'title', 'excerpt' ) {
+ next unless defined $permissions->{ 'update_event_field_' . $key . '_extension' };
+ if ( $permissions->{ 'update_event_field_' . $key . '_extension' } eq '1' ) {
+ next unless defined $params->{ 'user_' . $key };
+ $entry->{ 'user_' . $key } = $params->{ 'user_' . $key };
+ $found++;
+ }
+ }
- #status field
- for my $key ( 'live', 'published', 'playout', 'archived', 'rerun', 'disable_event_sync', 'draft' ) {
- next unless defined $permissions->{ 'update_event_status_' . $key };
- if ( $permissions->{ 'update_event_status_' . $key } eq '1' ) {
- $entry->{$key} = $params->{$key} || 0;
- $found++;
- }
- }
+ #status field
+ for my $key ( 'live', 'published', 'playout', 'archived', 'rerun', 'disable_event_sync', 'draft' ) {
+ next unless defined $permissions->{ 'update_event_status_' . $key };
+ if ( $permissions->{ 'update_event_status_' . $key } eq '1' ) {
+ $entry->{$key} = $params->{$key} || 0;
+ $found++;
+ }
+ }
- $entry->{modified_by} = $params->{presets}->{user};
+ $entry->{modified_by} = $params->{presets}->{user};
- #get event from database (for history)
- my $event = series::get_event(
- $config,
- {
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- series_id => $params->{series_id},
- event_id => $params->{event_id}
- }
- );
- unless ( defined $event ) {
- uac::print_error("event not found");
- return;
- }
+ #get event from database (for history)
+ my $event = series::get_event(
+ $config,
+ {
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ series_id => $params->{series_id},
+ event_id => $params->{event_id}
+ }
+ );
+ unless ( defined $event ) {
+ uac::print_error("event not found");
+ return;
+ }
- $entry->{image} = images::normalizeName( $entry->{image} );
- $entry->{series_image} = images::normalizeName( $entry->{series_image} );
+ $entry->{image} = images::normalizeName( $entry->{image} );
+ $entry->{series_image} = images::normalizeName( $entry->{series_image} );
- #print STDERR "event to update2: ".Dumper($entry);
+ #print STDERR "event to update2: ".Dumper($entry);
- $config->{access}->{write} = 1;
+ $config->{access}->{write} = 1;
- #update content
- if ( $found > 0 ) {
- $entry = series_events::save_content( $config, $entry );
- for my $key ( keys %$entry ) {
- $event->{$key} = $entry->{$key};
- }
- }
+ #update content
+ if ( $found > 0 ) {
+ $entry = series_events::save_content( $config, $entry );
+ for my $key ( keys %$entry ) {
+ $event->{$key} = $entry->{$key};
+ }
+ }
- #update time
- if ( ( defined $permissions->{update_event_time} ) && ( $permissions->{update_event_time} eq '1' ) ) {
- my $entry = {
- id => $params->{event_id},
- start_date => $params->{start_date},
- duration => $params->{duration},
+ #update time
+ if ( ( defined $permissions->{update_event_time} ) && ( $permissions->{update_event_time} eq '1' ) ) {
+ my $entry = {
+ id => $params->{event_id},
+ start_date => $params->{start_date},
+ duration => $params->{duration},
- # end => $params->{end_date} ,
- };
- $entry = series_events::save_event_time( $config, $entry );
- for my $key ( keys %$entry ) {
- $event->{$key} = $entry->{$key};
- }
- }
+ # end => $params->{end_date} ,
+ };
+ $entry = series_events::save_event_time( $config, $entry );
+ for my $key ( keys %$entry ) {
+ $event->{$key} = $entry->{$key};
+ }
+ }
- $event->{project_id} = $params->{project_id};
- $event->{studio_id} = $params->{studio_id};
- $event->{series_id} = $params->{series_id};
- $event->{event_id} = $params->{event_id};
- $event->{user} = $params->{presets}->{user};
+ $event->{project_id} = $params->{project_id};
+ $event->{studio_id} = $params->{studio_id};
+ $event->{series_id} = $params->{series_id};
+ $event->{event_id} = $params->{event_id};
+ $event->{user} = $params->{presets}->{user};
- #update recurrences
- series::update_recurring_events( $config, $event );
+ #update recurrences
+ series::update_recurring_events( $config, $event );
- #update history
- event_history::insert( $config, $event );
+ #update history
+ event_history::insert( $config, $event );
- user_stats::increase(
- $config,
- 'update_events',
- {
- project_id => $event->{project_id},
- studio_id => $event->{studio_id},
- series_id => $event->{series_id},
- user => $event->{user}
- }
- );
+ user_stats::increase(
+ $config,
+ 'update_events',
+ {
+ project_id => $event->{project_id},
+ studio_id => $event->{studio_id},
+ series_id => $event->{series_id},
+ user => $event->{user}
+ }
+ );
- #print "error" unless (defined $result);
- $config->{access}->{write} = 0;
- uac::print_info("event saved");
+ #print "error" unless (defined $result);
+ $config->{access}->{write} = 0;
+ uac::print_info("event saved");
}
sub create_event {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $event = $request->{params}->{checked};
- my $action = $params->{action};
- return eventOps::createEvent( $request, $event, $action );
+ my $params = $request->{params}->{checked};
+ my $event = $request->{params}->{checked};
+ my $action = $params->{action};
+ return eventOps::createEvent( $request, $event, $action );
}
#TODO: replace permission check with download
sub download {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
- my $result = series_events::check_permission(
- $request,
- {
- permission => 'update_event_of_series,update_event_of_others',
- check_for => [ 'studio', 'user', 'series', 'events' ],
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- series_id => $params->{series_id},
- event_id => $params->{event_id}
- }
- );
- unless ( $result eq '1' ) {
- uac::print_error($result);
- return undef;
- }
- $permissions->{update_event} = 1;
+ my $result = series_events::check_permission(
+ $request,
+ {
+ permission => 'update_event_of_series,update_event_of_others',
+ check_for => [ 'studio', 'user', 'series', 'events' ],
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ series_id => $params->{series_id},
+ event_id => $params->{event_id}
+ }
+ );
+ unless ( $result eq '1' ) {
+ uac::print_error($result);
+ return undef;
+ }
+ $permissions->{update_event} = 1;
- my $request2 = {
- params => {
- checked => events::check_params(
- $config,
- {
- event_id => $params->{event_id},
- template => 'no',
- limit => 1,
+ my $request2 = {
+ params => {
+ checked => events::check_params(
+ $config,
+ {
+ event_id => $params->{event_id},
+ template => 'no',
+ limit => 1,
- #no_exclude => 1
- }
- )
- },
- config => $request->{config},
- permissions => $request->{permissions}
- };
+ #no_exclude => 1
+ }
+ )
+ },
+ config => $request->{config},
+ permissions => $request->{permissions}
+ };
- $request2->{params}->{checked}->{published} = 'all';
- my $events = events::get( $config, $request2 );
- my $event = $events->[0];
- my $datetime = $event->{start_datetime};
- if ( $datetime =~ /(\d\d\d\d\-\d\d\-\d\d)[ T](\d\d)\:(\d\d)/ ) {
- $datetime = $1 . '\ ' . $2 . '_' . $3;
- } else {
- print STDERR "event.cgi::download no valid datetime found $datetime\n";
- return;
- }
- my $archive_dir = $config->{locations}->{local_archive_dir};
- my $archive_url = $config->{locations}->{local_archive_url};
- print STDERR "archive_dir: " . $archive_dir . "\n";
- print STDERR "archive_url: " . $archive_url . "\n";
- print STDERR "event.cgi::download look for : $archive_dir/$datetime*.mp3\n";
- my @files = glob( $archive_dir . '/' . $datetime . '*.mp3' );
+ $request2->{params}->{checked}->{published} = 'all';
+ my $events = events::get( $config, $request2 );
+ my $event = $events->[0];
+ my $datetime = $event->{start_datetime};
+ if ( $datetime =~ /(\d\d\d\d\-\d\d\-\d\d)[ T](\d\d)\:(\d\d)/ ) {
+ $datetime = $1 . '\ ' . $2 . '_' . $3;
+ } else {
+ print STDERR "event.cgi::download no valid datetime found $datetime\n";
+ return;
+ }
+ my $archive_dir = $config->{locations}->{local_archive_dir};
+ my $archive_url = $config->{locations}->{local_archive_url};
+ print STDERR "archive_dir: " . $archive_dir . "\n";
+ print STDERR "archive_url: " . $archive_url . "\n";
+ print STDERR "event.cgi::download look for : $archive_dir/$datetime*.mp3\n";
+ my @files = glob( $archive_dir . '/' . $datetime . '*.mp3' );
- #print STDERR Dumper(\@files);
- if ( @files > 0 ) {
- my $file = $files[0];
- my $key = int( rand(99999999999999999) );
- $key = MIME::Base64::encode_base64($key);
- $key =~ s/[^a-zA-Z0-9]//g;
+ #print STDERR Dumper(\@files);
+ if ( @files > 0 ) {
+ my $file = $files[0];
+ my $key = int( rand(99999999999999999) );
+ $key = MIME::Base64::encode_base64($key);
+ $key =~ s/[^a-zA-Z0-9]//g;
- #decode filename
- $file = Encode::decode( "UTF-8", $file );
+ #decode filename
+ $file = Encode::decode( "UTF-8", $file );
- my $cmd = "ln -s '" . $file . "' '" . $archive_dir . '/' . $key . ".mp3'";
- my $url = $archive_url . '/' . $key . '.mp3';
+ my $cmd = "ln -s '" . $file . "' '" . $archive_dir . '/' . $key . ".mp3'";
+ my $url = $archive_url . '/' . $key . '.mp3';
- #print $cmd."\n";
- print `$cmd`;
+ #print $cmd."\n";
+ print `$cmd`;
- $request->{params}->{checked}->{download} =
- "Hallo,\n\n"
- . "anbei der Mitschnitt fuer\n"
- . $event->{start_date_name} . ", "
- . $event->{start_time_name} . " - "
- . $event->{series_name} . ' - '
- . $event->{title} . ":\n"
- . $url . "\n"
- . "\nDer Link wird nach 7 Tagen geloescht. (bitte nicht weitergeben)\n"
- . "Gruss, Peter\n";
- }
+ $request->{params}->{checked}->{download} =
+ "Hallo,\n\n"
+ . "anbei der Mitschnitt fuer\n"
+ . $event->{start_date_name} . ", "
+ . $event->{start_time_name} . " - "
+ . $event->{series_name} . ' - '
+ . $event->{title} . ":\n"
+ . $url . "\n"
+ . "\nDer Link wird nach 7 Tagen geloescht. (bitte nicht weitergeben)\n"
+ . "Gruss, Peter\n";
+ }
}
sub check_params {
- my $params = shift;
+ my $config = shift;
+ my $params = shift;
- my $checked = {};
- my $template = '';
- $checked->{template} = template::check($config, $params->{template}, 'series' );
+ my $checked = {};
+ my $template = '';
+ $checked->{template} = template::check( $config, $params->{template}, 'series' );
- my $debug = $params->{debug} || '';
- if ( $debug =~ /([a-z\_\,]+)/ ) {
- $debug = $1;
- }
- $checked->{debug} = $debug;
+ my $debug = $params->{debug} || '';
+ if ( $debug =~ /([a-z\_\,]+)/ ) {
+ $debug = $1;
+ }
+ $checked->{debug} = $debug;
- #numeric values
- for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'source_event_id', 'episode' )
- {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
- $checked->{$param} = $params->{$param};
- }
- }
+ #numeric values
+ for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'source_event_id', 'episode' )
+ {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
+ $checked->{$param} = $params->{$param};
+ }
+ }
- if ( defined $checked->{studio_id} ) {
- $checked->{default_studio_id} = $checked->{studio_id};
- } else {
- $checked->{studio_id} = -1;
- }
+ if ( defined $checked->{studio_id} ) {
+ $checked->{default_studio_id} = $checked->{studio_id};
+ } else {
+ $checked->{studio_id} = -1;
+ }
- #scalars
- for my $param ( 'studio', 'search', 'from', 'till', 'hide_series' ) {
- if ( defined $params->{$param} ) {
- $checked->{$param} = $params->{$param};
- $checked->{$param} =~ s/^\s+//g;
- $checked->{$param} =~ s/\s+$//g;
- }
- }
+ #scalars
+ for my $param ( 'studio', 'search', 'from', 'till', 'hide_series' ) {
+ if ( defined $params->{$param} ) {
+ $checked->{$param} = $params->{$param};
+ $checked->{$param} =~ s/^\s+//g;
+ $checked->{$param} =~ s/\s+$//g;
+ }
+ }
- #numbers
- for my $param ( 'duration', 'recurrence' ) {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) {
- $checked->{$param} = $1;
- }
- }
+ #numbers
+ for my $param ( 'duration', 'recurrence' ) {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) {
+ $checked->{$param} = $1;
+ }
+ }
- #checkboxes
- for my $param ( 'live', 'published', 'playout', 'archived', 'rerun', 'draft', 'disable_event_sync', 'get_rerun' ) {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /([01])/ ) ) {
- $checked->{$param} = $1;
+ #checkboxes
+ for my $param ( 'live', 'published', 'playout', 'archived', 'rerun', 'draft', 'disable_event_sync', 'get_rerun' ) {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /([01])/ ) ) {
+ $checked->{$param} = $1;
- # print STDERR "check $param = $1\n";
- }
- }
+ # print STDERR "check $param = $1\n";
+ }
+ }
- #strings
- for my $param (
- 'series_name', 'title', 'excerpt', 'content', 'topic', 'program', 'category', 'image',
- 'series_image', 'user_content', 'user_title', 'user_excerpt', 'podcast_url', 'archive_url'
- )
- {
- if ( defined $params->{$param} ) {
+ #strings
+ for my $param (
+ 'series_name', 'title', 'excerpt', 'content', 'topic', 'program', 'category', 'image',
+ 'series_image', 'user_content', 'user_title', 'user_excerpt', 'podcast_url', 'archive_url'
+ )
+ {
+ if ( defined $params->{$param} ) {
- #$checked->{$param}=uri_unescape();
- $checked->{$param} = $params->{$param};
- $checked->{$param} =~ s/^\s+//g;
- $checked->{$param} =~ s/\s+$//g;
- }
- }
+ #$checked->{$param}=uri_unescape();
+ $checked->{$param} = $params->{$param};
+ $checked->{$param} =~ s/^\s+//g;
+ $checked->{$param} =~ s/\s+$//g;
+ }
+ }
- #dates
- for my $param ( 'start_date', 'end_date' ) {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d\d\d\d\-\d\d\-\d\d \d\d\:\d\d)/ ) ) {
- $checked->{$param} = $1 . ':00';
- }
- }
+ #dates
+ for my $param ( 'start_date', 'end_date' ) {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d\d\d\d\-\d\d\-\d\d \d\d\:\d\d)/ ) ) {
+ $checked->{$param} = $1 . ':00';
+ }
+ }
- #actions and roles
- $checked->{action} = '';
- if ( defined $params->{action} ) {
- if ( $params->{action} =~
- /^(save|delete|download|show_new_event|show_new_event_from_schedule|create_event|create_event_from_schedule|get_json)$/ )
- {
- $checked->{action} = $params->{action};
- }
- }
+ #actions and roles
+ $checked->{action} = '';
+ if ( defined $params->{action} ) {
+ if ( $params->{action} =~
+ /^(save|delete|download|show_new_event|show_new_event_from_schedule|create_event|create_event_from_schedule|get_json)$/ )
+ {
+ $checked->{action} = $params->{action};
+ }
+ }
- #print STDERR "event params:".Dumper($checked);
- return $checked;
+ #print STDERR "event params:".Dumper($checked);
+ return $checked;
}
__DATA__
diff --git a/website/agenda/planung/event_history.cgi b/website/agenda/planung/event_history.cgi
index da413ae..52f52ec 100755
--- a/website/agenda/planung/event_history.cgi
+++ b/website/agenda/planung/event_history.cgi
@@ -4,7 +4,6 @@ use warnings "all";
use strict;
use URI::Escape();
-use Encode();
use Data::Dumper;
use MIME::Base64();
use Text::Diff::FormattedHTML();
@@ -40,11 +39,11 @@ $params->{studio_id} = $params->{default_studio_id}
if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) );
my $request = {
- url => $ENV{QUERY_STRING} || '',
- params => {
- original => $params,
- checked => check_params($params),
- },
+ url => $ENV{QUERY_STRING} || '',
+ params => {
+ original => $params,
+ checked => check_params( $config, $params ),
+ },
};
#print STDERR Dumper($request)."\n";
@@ -57,7 +56,7 @@ $params = $request->{params}->{checked};
#show header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
-template::process( $config, 'print', template::check($config, 'default.html'), $headerParams );
+template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
print q{
@@ -68,168 +67,169 @@ print q{
$config->{access}->{write} = 0;
if ( $params->{action} eq 'diff' ) {
- compare( $config, $request );
- return;
+ compare( $config, $request );
+ return;
}
show_history( $config, $request );
#show existing event history
sub show_history {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
- for my $attr ('studio_id') { # 'series_id','event_id'
- unless ( defined $params->{$attr} ) {
- uac::print_error( "missing " . $attr . " to show changes" );
- return;
- }
- }
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
+ for my $attr ('studio_id') { # 'series_id','event_id'
+ unless ( defined $params->{$attr} ) {
+ uac::print_error( "missing " . $attr . " to show changes" );
+ return;
+ }
+ }
- unless ( $permissions->{read_event} == 1 ) {
- uac::print_error("missing permissions to show changes");
- return;
- }
+ unless ( $permissions->{read_event} == 1 ) {
+ uac::print_error("missing permissions to show changes");
+ return;
+ }
- my $options = {
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- limit => 200
- };
- $options->{series_id} = $params->{series_id} if defined $params->{series_id};
- $options->{event_id} = $params->{event_id} if defined $params->{event_id};
+ my $options = {
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ limit => 200
+ };
+ $options->{series_id} = $params->{series_id} if defined $params->{series_id};
+ $options->{event_id} = $params->{event_id} if defined $params->{event_id};
- my $events = event_history::get( $config, $options );
+ my $events = event_history::get( $config, $options );
- #print STDERR Dumper($events);
- return unless defined $events;
- $params->{events} = $events;
+ #print STDERR Dumper($events);
+ return unless defined $events;
+ $params->{events} = $events;
- for my $permission ( keys %{$permissions} ) {
- $params->{'allow'}->{$permission} = $request->{permissions}->{$permission};
- }
+ for my $permission ( keys %{$permissions} ) {
+ $params->{'allow'}->{$permission} = $request->{permissions}->{$permission};
+ }
- #print STDERR Dumper($params);
- $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event_history' } );
+ #print STDERR Dumper($params);
+ $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'event_history' } );
- template::process($config, 'print', template::check($config, 'event_history'), $params );
+ template::process( $config, 'print', template::check( $config, 'event_history' ), $params );
}
#show existing event history
sub compare {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
- for my $attr ( 'project_id', 'studio_id', 'event_id', 'v1', 'v2' ) {
- unless ( defined $params->{$attr} ) {
- uac::print_error( "missing " . $attr . " to show changes" );
- return;
- }
- }
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
+ for my $attr ( 'project_id', 'studio_id', 'event_id', 'v1', 'v2' ) {
+ unless ( defined $params->{$attr} ) {
+ uac::print_error( "missing " . $attr . " to show changes" );
+ return;
+ }
+ }
- unless ( $permissions->{read_event} == 1 ) {
- uac::print_error("missing permissions to show changes");
- return;
- }
+ unless ( $permissions->{read_event} == 1 ) {
+ uac::print_error("missing permissions to show changes");
+ return;
+ }
- print qq{} . "\n";
+ print qq{} . "\n";
- if ( $params->{v1} > $params->{v2} ) {
- my $t = $params->{v1};
- $params->{v1} = $params->{v2};
- $params->{v2} = $t;
- }
+ if ( $params->{v1} > $params->{v2} ) {
+ my $t = $params->{v1};
+ $params->{v1} = $params->{v2};
+ $params->{v2} = $t;
+ }
- my $options = {
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- series_id => $params->{series_id},
- event_id => $params->{event_id},
- change_id => $params->{v1},
- limit => 2
- };
+ my $options = {
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ series_id => $params->{series_id},
+ event_id => $params->{event_id},
+ change_id => $params->{v1},
+ limit => 2
+ };
- my $events = event_history::get( $config, $options );
- return unless @$events == 1;
- my $v1 = $events->[0];
+ my $events = event_history::get( $config, $options );
+ return unless @$events == 1;
+ my $v1 = $events->[0];
- $options->{change_id} = $params->{v2};
- $events = event_history::get( $config, $options );
- return unless @$events == 1;
- my $v2 = $events->[0];
+ $options->{change_id} = $params->{v2};
+ $events = event_history::get( $config, $options );
+ return unless @$events == 1;
+ my $v2 = $events->[0];
- my $t1 = eventToText($v1);
- my $t2 = eventToText($v2);
+ my $t1 = eventToText($v1);
+ my $t2 = eventToText($v2);
- if ( $t1 eq $t2 ) {
- print "no changes\n";
- return;
- }
+ if ( $t1 eq $t2 ) {
+ print "no changes\n";
+ return;
+ }
- #print "";
- #print '';
- #my $diff=diff_strings( { vertical => 1 }, $t1, $t2);
- my $diff = diff_strings( {}, $t1, $t2 );
+ #print "";
+ #print '';
+ #my $diff=diff_strings( { vertical => 1 }, $t1, $t2);
+ my $diff = diff_strings( {}, $t1, $t2 );
- #print Text::Diff::diff(\$t1, \$t2, { STYLE => "Table" });
- #print Text::Diff::diff($v1, $v2, { STYLE => "Table" });
- print $diff;
+ #print Text::Diff::diff(\$t1, \$t2, { STYLE => "Table" });
+ #print Text::Diff::diff($v1, $v2, { STYLE => "Table" });
+ print $diff;
- #print '';
+ #print '';
}
sub eventToText {
- my $event = shift;
+ my $event = shift;
- my $s = events::get_keys($event)->{full_title} . "\n";
- $s .= $event->{excerpt} . "\n";
- $s .= $event->{user_excerpt} . "\n";
- $s .= $event->{topic} . "\n";
- $s .= $event->{content} . "\n";
+ my $s = events::get_keys($event)->{full_title} . "\n";
+ $s .= $event->{excerpt} . "\n";
+ $s .= $event->{user_excerpt} . "\n";
+ $s .= $event->{topic} . "\n";
+ $s .= $event->{content} . "\n";
- #print STDERR "DUMP\n$s";
- return $s;
+ #print STDERR "DUMP\n$s";
+ return $s;
}
sub check_params {
- my $params = shift;
+ my $config = shift;
+ my $params = shift;
- my $checked = {};
- my $template = '';
- $checked->{template} = template::check($config, $params->{template}, 'event_history' );
+ my $checked = {};
+ my $template = '';
+ $checked->{template} = template::check( $config, $params->{template}, 'event_history' );
- my $debug = $params->{debug} || '';
- if ( $debug =~ /([a-z\_\,]+)/ ) {
- $debug = $1;
- }
- $checked->{debug} = $debug;
+ my $debug = $params->{debug} || '';
+ if ( $debug =~ /([a-z\_\,]+)/ ) {
+ $debug = $1;
+ }
+ $checked->{debug} = $debug;
- #numeric values
- for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'v1', 'v2' ) {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
- $checked->{$param} = $params->{$param};
- }
- }
+ #numeric values
+ for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'v1', 'v2' ) {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
+ $checked->{$param} = $params->{$param};
+ }
+ }
- if ( defined $checked->{studio_id} ) {
- $checked->{default_studio_id} = $checked->{studio_id};
- } else {
- $checked->{studio_id} = -1;
- }
+ if ( defined $checked->{studio_id} ) {
+ $checked->{default_studio_id} = $checked->{studio_id};
+ } else {
+ $checked->{studio_id} = -1;
+ }
- #actions and roles
- $checked->{action} = '';
- if ( defined $params->{action} ) {
- if ( $params->{action} =~ /^(show|diff)$/ ) {
- $checked->{action} = $params->{action};
- }
- }
+ #actions and roles
+ $checked->{action} = '';
+ if ( defined $params->{action} ) {
+ if ( $params->{action} =~ /^(show|diff)$/ ) {
+ $checked->{action} = $params->{action};
+ }
+ }
- #print STDERR Dumper($checked);
- return $checked;
+ #print STDERR Dumper($checked);
+ return $checked;
}
diff --git a/website/agenda/planung/help.cgi b/website/agenda/planung/help.cgi
index a137986..81c8c9b 100755
--- a/website/agenda/planung/help.cgi
+++ b/website/agenda/planung/help.cgi
@@ -5,7 +5,6 @@ use strict;
use Data::Dumper;
use URI::Escape();
-use Encode();
use params();
use config();
@@ -29,12 +28,12 @@ my ( $user, $expires ) = auth::get_user( $cgi, $config );
return if ( ( !defined $user ) || ( $user eq '' ) );
my $user_presets = uac::get_user_presets(
- $config,
- {
- user => $user,
- project_id => $params->{project_id},
- studio_id => $params->{studio_id}
- }
+ $config,
+ {
+ user => $user,
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id}
+ }
);
$params->{default_studio_id} = $user_presets->{studio_id};
$params->{studio_id} = $params->{default_studio_id}
@@ -43,11 +42,11 @@ $params->{project_id} = $user_presets->{project_id}
if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) );
my $request = {
- url => $ENV{QUERY_STRING} || '',
- params => {
- original => $params,
- checked => check_params($params),
- },
+ url => $ENV{QUERY_STRING} || '',
+ params => {
+ original => $params,
+ checked => check_params( $config, $params ),
+ },
};
$request = uac::prepare_request( $request, $user_presets );
@@ -56,7 +55,7 @@ $params = $request->{params}->{checked};
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
-template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
+template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
my $toc = $headerParams->{loc}->{toc};
@@ -129,13 +128,13 @@ $( document ).ready(function() {
print markup::creole_to_html( getHelp( $headerParams->{loc}->{region} ) );
sub getHelp {
- my $region = shift;
- return getGermanHelp() if $region eq 'de';
- return getEnglishHelp();
+ my $region = shift;
+ return getGermanHelp() if $region eq 'de';
+ return getEnglishHelp();
}
sub getGermanHelp {
- return q{
+ return q{
Inhaltsverzeichnis
@@ -379,7 +378,7 @@ Folgende Status-Felder gibt es:
}
sub getEnglishHelp {
- return q{
+ return q{
Table of Contents
= Menu
@@ -617,29 +616,30 @@ There are following status fields:
}
sub check_params {
- my $params = shift;
+ my $config = shift;
+ my $params = shift;
- my $checked = {};
+ my $checked = {};
- my $debug = $params->{debug} || '';
- if ( $debug =~ /([a-z\_\,]+)/ ) {
- $debug = $1;
- }
- $checked->{debug} = $debug;
+ my $debug = $params->{debug} || '';
+ if ( $debug =~ /([a-z\_\,]+)/ ) {
+ $debug = $1;
+ }
+ $checked->{debug} = $debug;
- #numeric values
- $checked->{exclude} = 0;
- for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id' ) {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
- $checked->{$param} = $params->{$param};
- }
- }
- if ( defined $checked->{studio_id} ) {
- $checked->{default_studio_id} = $checked->{studio_id};
- } else {
- $checked->{studio_id} = -1;
- }
+ #numeric values
+ $checked->{exclude} = 0;
+ for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id' ) {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
+ $checked->{$param} = $params->{$param};
+ }
+ }
+ if ( defined $checked->{studio_id} ) {
+ $checked->{default_studio_id} = $checked->{studio_id};
+ } else {
+ $checked->{studio_id} = -1;
+ }
- return $checked;
+ return $checked;
}
diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi
index 9068fc3..c04d8bb 100755
--- a/website/agenda/planung/image.cgi
+++ b/website/agenda/planung/image.cgi
@@ -39,12 +39,12 @@ my ( $user, $expires ) = auth::get_user( $cgi, $config );
return if ( ( !defined $user ) || ( $user eq '' ) );
my $user_presets = uac::get_user_presets(
- $config,
- {
- user => $user,
- project_id => $params->{project_id},
- studio_id => $params->{studio_id}
- }
+ $config,
+ {
+ user => $user,
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id}
+ }
);
$params->{default_studio_id} = $user_presets->{studio_id};
$params->{studio_id} = $params->{default_studio_id}
@@ -53,11 +53,11 @@ $params->{project_id} = $user_presets->{project_id}
if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) );
my $request = {
- url => $ENV{QUERY_STRING} || '',
- params => {
- original => $params,
- checked => check_params($params),
- }
+ url => $ENV{QUERY_STRING} || '',
+ params => {
+ original => $params,
+ checked => check_params( $config, $params ),
+ }
};
$request = uac::prepare_request( $request, $user_presets );
$params = $request->{params}->{checked};
@@ -65,7 +65,7 @@ $params = $request->{params}->{checked};
#show header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
-template::process($config, 'print', template::check($config, 'ajax_header.html'), $headerParams );
+template::process( $config, 'print', template::check( $config, 'ajax_header.html' ), $headerParams );
return unless defined uac::check( $config, $params, $user_presets );
my $local_media_dir = $config->{locations}->{local_media_dir};
@@ -76,400 +76,401 @@ uac::permissions_denied('reading from local media dir') unless -r $local_media_d
uac::permissions_denied('writing to local media dir') unless -w $local_media_dir;
if ( $params->{delete_image} ne '' ) {
- delete_image( $config, $request, $user, $local_media_dir );
- return;
+ delete_image( $config, $request, $user, $local_media_dir );
+ return;
} elsif ( $params->{save_image} ne '' ) {
- save_image( $config, $request, $user );
- return;
+ save_image( $config, $request, $user );
+ return;
}
show_image( $config, $request, $user, $local_media_url );
sub show_image {
- my $config = shift;
- my $request = shift;
- my $user = shift;
- my $local_media_url = shift;
+ my $config = shift;
+ my $request = shift;
+ my $user = shift;
+ my $local_media_url = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
- unless ( defined $params->{project_id} ) {
- uac::print_error("missing project id");
- return undef;
- }
- unless ( defined $params->{studio_id} ) {
- uac::print_error("missing studio id");
- return undef;
- }
+ unless ( defined $params->{project_id} ) {
+ uac::print_error("missing project id");
+ return undef;
+ }
+ unless ( defined $params->{studio_id} ) {
+ uac::print_error("missing studio id");
+ return undef;
+ }
- if ( $permissions->{read_image} ne '1' ) {
- uac::permissions_denied("read image");
- return 0;
- }
+ if ( $permissions->{read_image} ne '1' ) {
+ uac::permissions_denied("read image");
+ return 0;
+ }
- $config->{access}->{write} = 0;
- my $dbh = db::connect( $config, undef );
+ $config->{access}->{write} = 0;
+ my $dbh = db::connect( $config, undef );
- my $projectId = $params->{project_id};
- my $studioId = $params->{studio_id};
- my $selectedFilename = $params->{filename} || '';
+ my $projectId = $params->{project_id};
+ my $studioId = $params->{studio_id};
+ my $selectedFilename = $params->{filename} || '';
- my $filenames = {};
- my $results = [];
+ my $filenames = {};
+ my $results = [];
- # add images from series
- if ( defined $params->{series_id} ) {
- my $seriesImages = series::get_images(
- $config,
- {
- project_id => $projectId,
- studio_id => $studioId,
- series_id => $params->{series_id}
- }
- );
+ # add images from series
+ if ( defined $params->{series_id} ) {
+ my $seriesImages = series::get_images(
+ $config,
+ {
+ project_id => $projectId,
+ studio_id => $studioId,
+ series_id => $params->{series_id}
+ }
+ );
- for my $image (@$seriesImages) {
- my $filename = $image->{filename};
- next if defined $filenames->{$filename};
- $filenames->{$filename} = $image;
- push @$results, $image;
- }
- }
+ for my $image (@$seriesImages) {
+ my $filename = $image->{filename};
+ next if defined $filenames->{$filename};
+ $filenames->{$filename} = $image;
+ push @$results, $image;
+ }
+ }
- #load images matching by search
- if ( $params->{search} =~ /\S/ ) {
+ #load images matching by search
+ if ( $params->{search} =~ /\S/ ) {
- #remove filename from search
- #delete $params->{filename};
- #delete $params->{series_id};
- my $searchImages = images::get(
- $config,
- {
- project_id => $projectId,
- studio_id => $studioId,
- search => $params->{search}
- }
- );
+ #remove filename from search
+ #delete $params->{filename};
+ #delete $params->{series_id};
+ my $searchImages = images::get(
+ $config,
+ {
+ project_id => $projectId,
+ studio_id => $studioId,
+ search => $params->{search}
+ }
+ );
- for my $image (@$searchImages) {
- my $filename = $image->{filename};
- next if defined $filenames->{$filename};
- $filenames->{$filename} = $image;
- push @$results, $image;
- }
- }
+ for my $image (@$searchImages) {
+ my $filename = $image->{filename};
+ next if defined $filenames->{$filename};
+ $filenames->{$filename} = $image;
+ push @$results, $image;
+ }
+ }
- #load selected image, if not already loaded
- my $selectedImage = undef;
- if ( $selectedFilename ne '' ) {
- if ( defined $filenames->{$selectedFilename} ) {
- $selectedImage = $filenames->{$selectedFilename};
- } else {
+ #load selected image, if not already loaded
+ my $selectedImage = undef;
+ if ( $selectedFilename ne '' ) {
+ if ( defined $filenames->{$selectedFilename} ) {
+ $selectedImage = $filenames->{$selectedFilename};
+ } else {
- #print STDERR "getByName:".Dumper($params);
+ #print STDERR "getByName:".Dumper($params);
- #put selected image to the top
- my $imagesByNames = images::get(
- $config,
- {
- project_id => $projectId,
- studio_id => $studioId,
- filename => $selectedFilename
- }
- );
+ #put selected image to the top
+ my $imagesByNames = images::get(
+ $config,
+ {
+ project_id => $projectId,
+ studio_id => $studioId,
+ filename => $selectedFilename
+ }
+ );
- #print STDERR Dumper($imagesByNames);
- $selectedImage = $imagesByNames->[0] if scalar @$imagesByNames > 0;
- }
+ #print STDERR Dumper($imagesByNames);
+ $selectedImage = $imagesByNames->[0] if scalar @$imagesByNames > 0;
+ }
- my $finalResults = [];
+ my $finalResults = [];
- # put selected image first
- $selectedFilename = 'not-found';
- if ( defined $selectedImage ) {
- push @$finalResults, $selectedImage;
- $selectedFilename = $selectedImage->{filename};
- }
+ # put selected image first
+ $selectedFilename = 'not-found';
+ if ( defined $selectedImage ) {
+ push @$finalResults, $selectedImage;
+ $selectedFilename = $selectedImage->{filename};
+ }
- # then other images
- for my $image (@$results) {
- push @$finalResults, $image if $image->{filename} ne $selectedFilename;
- }
- $results = $finalResults;
- }
+ # then other images
+ for my $image (@$results) {
+ push @$finalResults, $image if $image->{filename} ne $selectedFilename;
+ }
+ $results = $finalResults;
+ }
- if ( scalar @$results != 0 ) {
- if ( $params->{template} =~ /edit/ ) {
- my $result = $results->[0];
- $result->{missing_licence} = 1 if ( !defined $result->{licence} ) || ( $result->{licence} !~ /\S/ );
- $results = [$result];
- }
+ if ( scalar @$results != 0 ) {
+ if ( $params->{template} =~ /edit/ ) {
+ my $result = $results->[0];
+ $result->{missing_licence} = 1 if ( !defined $result->{licence} ) || ( $result->{licence} !~ /\S/ );
+ $results = [$result];
+ }
- $results = modify_results( $results, $permissions, $user, $local_media_url );
- }
+ $results = modify_results( $results, $permissions, $user, $local_media_url );
+ }
- my $search = $params->{search} || '';
- $search =~ s/\%+/ /g;
+ my $search = $params->{search} || '';
+ $search =~ s/\%+/ /g;
- my $template_params = {
- 'search' => $search,
- 'images' => $results,
- 'count' => scalar @$results,
- 'projects' => project::get_with_dates($config),
- 'project_id' => $params->{project_id},
- 'studio_id' => $params->{studio_id},
- 'filename' => $params->{filename}
- };
+ my $template_params = {
+ 'search' => $search,
+ 'images' => $results,
+ 'count' => scalar @$results,
+ 'projects' => project::get_with_dates($config),
+ 'project_id' => $params->{project_id},
+ 'studio_id' => $params->{studio_id},
+ 'filename' => $params->{filename}
+ };
- # print STDERR
- $template_params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'image' } );
- $template_params = uac::set_template_permissions( $permissions, $template_params );
- $template_params->{no_results} = 1 if scalar @$results == 0;
+ # print STDERR
+ $template_params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'image' } );
+ $template_params = uac::set_template_permissions( $permissions, $template_params );
+ $template_params->{no_results} = 1 if scalar @$results == 0;
- #set global values for update and delete, per image values are evaluated later
- $template_params->{allow}->{update_image} =
- $template_params->{allow}->{update_image_own} || $template_params->{allow}->{seriesupdate_image_others};
- $template_params->{allow}->{delete_image} =
- $template_params->{allow}->{delete_image_own} || $template_params->{allow}->{delete_image_others};
- template::process($config, 'print', $params->{template}, $template_params );
+ #set global values for update and delete, per image values are evaluated later
+ $template_params->{allow}->{update_image} =
+ $template_params->{allow}->{update_image_own} || $template_params->{allow}->{seriesupdate_image_others};
+ $template_params->{allow}->{delete_image} =
+ $template_params->{allow}->{delete_image_own} || $template_params->{allow}->{delete_image_others};
+ template::process( $config, 'print', $params->{template}, $template_params );
}
sub print_js_error {
- my $message = shift;
- print qq{
};
- print STDERR $message . "\n";
+ print STDERR $message . "\n";
}
sub save_image {
- my $config = shift;
- my $request = shift;
- my $user = shift;
+ my $config = shift;
+ my $request = shift;
+ my $user = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
- unless ( check_permission( $config, $user, $permissions, 'update_image', $params->{save_image} ) eq '1' ) {
- print_js_error("missing permission to update image");
- return 0;
- }
+ unless ( check_permission( $config, $user, $permissions, 'update_image', $params->{save_image} ) eq '1' ) {
+ print_js_error("missing permission to update image");
+ return 0;
+ }
- if ( ( $params->{update_name} eq '' ) && ( $params->{update_description} eq '' ) ) {
- print_js_error("empty name or empty description!");
- return 0;
- }
+ if ( ( $params->{update_name} eq '' ) && ( $params->{update_description} eq '' ) ) {
+ print_js_error("empty name or empty description!");
+ return 0;
+ }
- my $image = {};
- $image->{filename} = $params->{save_image};
- $image->{name} = $params->{update_name} if $params->{update_name} ne '';
- $image->{description} = $params->{update_description} if $params->{update_description} ne '';
- $image->{project_id} = $params->{project_id};
- $image->{studio_id} = $params->{studio_id};
- $image->{licence} = $params->{licence};
- $image->{public} = $params->{public};
- $image->{modified_by} = $user;
+ my $image = {};
+ $image->{filename} = $params->{save_image};
+ $image->{name} = $params->{update_name} if $params->{update_name} ne '';
+ $image->{description} = $params->{update_description} if $params->{update_description} ne '';
+ $image->{project_id} = $params->{project_id};
+ $image->{studio_id} = $params->{studio_id};
+ $image->{licence} = $params->{licence};
+ $image->{public} = $params->{public};
+ $image->{modified_by} = $user;
- $image->{name} = 'new' if $image->{name} eq '';
+ $image->{name} = 'new' if $image->{name} eq '';
- images::checkLicence( $config, $image );
+ images::checkLicence( $config, $image );
- $config->{access}->{write} = 1;
- my $dbh = db::connect($config);
+ $config->{access}->{write} = 1;
+ my $dbh = db::connect($config);
- print STDERR "going to save\n";
+ print STDERR "going to save\n";
- #print STDERR Dumper($image);
+ #print STDERR Dumper($image);
- my $entries = images::get(
- $config,
- {
- filename => $image->{filename},
- project_id => $image->{project_id},
- studio_id => $image->{studio_id}
- }
- );
+ my $entries = images::get(
+ $config,
+ {
+ filename => $image->{filename},
+ project_id => $image->{project_id},
+ studio_id => $image->{studio_id}
+ }
+ );
- if ( scalar @$entries > 1 ) {
- print_js_error('more than one matching result found');
- return 0;
- }
- if ( scalar @$entries == 0 ) {
- print_js_error('image not found in database (for this studio)');
- return 0;
- }
- my $entry = $entries->[0];
- if ( defined $entry ) {
- images::update( $dbh, $image );
- images::publish( $config, $image->{filename} ) if ( ( $image->{public} == 1 ) && ( $entry->{public} == 0 ) );
- images::depublish( $config, $image->{filename} ) if ( ( $image->{public} == 0 ) && ( $entry->{public} == 1 ) );
- } else {
- $image->{created_by} = $user;
- images::insert( $dbh, $image );
- }
+ if ( scalar @$entries > 1 ) {
+ print_js_error('more than one matching result found');
+ return 0;
+ }
+ if ( scalar @$entries == 0 ) {
+ print_js_error('image not found in database (for this studio)');
+ return 0;
+ }
+ my $entry = $entries->[0];
+ if ( defined $entry ) {
+ images::update( $dbh, $image );
+ images::publish( $config, $image->{filename} ) if ( ( $image->{public} == 1 ) && ( $entry->{public} == 0 ) );
+ images::depublish( $config, $image->{filename} ) if ( ( $image->{public} == 0 ) && ( $entry->{public} == 1 ) );
+ } else {
+ $image->{created_by} = $user;
+ images::insert( $dbh, $image );
+ }
}
sub delete_image {
- my $config = shift;
- my $request = shift;
- my $user = shift;
- my $local_media_dir = shift;
+ my $config = shift;
+ my $request = shift;
+ my $user = shift;
+ my $local_media_dir = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
- unless ( check_permission( $config, $user, $permissions, 'delete_image', $params->{delete_image} ) eq '1' ) {
- uac::permissions_denied('delete image');
- return 0;
- }
+ unless ( check_permission( $config, $user, $permissions, 'delete_image', $params->{delete_image} ) eq '1' ) {
+ uac::permissions_denied('delete image');
+ return 0;
+ }
- #print $cgi->header();
- #print "Content-type:text/html; charset=UTF-8;\n\n";
+ #print $cgi->header();
+ #print "Content-type:text/html; charset=UTF-8;\n\n";
- $config->{access}->{write} = 1;
- my $dbh = db::connect($config);
- my $image = {
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- filename => $params->{delete_image},
- };
- my $result = images::delete( $dbh, $image );
+ $config->{access}->{write} = 1;
+ my $dbh = db::connect($config);
+ my $image = {
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ filename => $params->{delete_image},
+ };
+ my $result = images::delete( $dbh, $image );
- #print STDERR "delete result=" . Dumper($result);
+ #print STDERR "delete result=" . Dumper($result);
- return;
- my $action_result = '';
- my $errors = '';
- $result = images::delete_files( $config, $local_media_dir, $params->{delete_image}, $action_result, $errors );
+ return;
+ my $action_result = '';
+ my $errors = '';
+ $result = images::delete_files( $config, $local_media_dir, $params->{delete_image}, $action_result, $errors );
- #use Data::Dumper;print STDERR "delete\n".Dumper($params);
- print "deleted
$action_result
$errors\n";
+ #use Data::Dumper;print STDERR "delete\n".Dumper($params);
+ print "deleted
$action_result
$errors\n";
}
sub check_permission {
- my $config = shift;
- my $user = shift;
- my $permissions = shift;
- my $permission = shift;
- my $filename = shift;
+ my $config = shift;
+ my $user = shift;
+ my $permissions = shift;
+ my $permission = shift;
+ my $filename = shift;
- return 0 unless defined $user;
- return 0 if ( $user eq '' );
+ return 0 unless defined $user;
+ return 0 if ( $user eq '' );
- if ( $permissions->{ $permission . '_others' } eq '1' ) {
- print STDERR "$user has update_image_others\n";
- return 1;
- } elsif ( $permissions->{ $permission . '_own' } eq '1' ) {
- print STDERR "$user has update_image_own\n";
+ if ( $permissions->{ $permission . '_others' } eq '1' ) {
+ print STDERR "$user has update_image_others\n";
+ return 1;
+ } elsif ( $permissions->{ $permission . '_own' } eq '1' ) {
+ print STDERR "$user has update_image_own\n";
- #check if image was created by user
- my $results = images::get(
- $config,
- {
- filename => $filename,
- created_by => $user
- }
- );
- return 1 if ( @$results == 1 );
- return 0;
- }
- return 0;
+ #check if image was created by user
+ my $results = images::get(
+ $config,
+ {
+ filename => $filename,
+ created_by => $user
+ }
+ );
+ return 1 if ( @$results == 1 );
+ return 0;
+ }
+ return 0;
}
sub modify_results {
- my $results = shift;
- my $permissions = shift;
- my $user = shift;
- my $local_media_url = shift;
+ my $results = shift;
+ my $permissions = shift;
+ my $user = shift;
+ my $local_media_url = shift;
- for my $result (@$results) {
- unless ( defined $result->{filename} ) {
- $result = undef;
- next;
- }
- $result->{image_url} = $local_media_url . '/images/' . $result->{filename};
- $result->{thumb_url} = $local_media_url . '/thumbs/' . $result->{filename};
- $result->{icon_url} = $local_media_url . '/icons/' . $result->{filename};
+ for my $result (@$results) {
+ unless ( defined $result->{filename} ) {
+ $result = undef;
+ next;
+ }
+ $result->{image_url} = $local_media_url . '/images/' . $result->{filename};
+ $result->{thumb_url} = $local_media_url . '/thumbs/' . $result->{filename};
+ $result->{icon_url} = $local_media_url . '/icons/' . $result->{filename};
- #reduce
- for my $permission ( 'update_image', 'delete_image' ) {
- if ( ( defined $permissions->{ $permission . '_others' } ) && ( $permissions->{ $permission . '_others' } eq '1' ) ) {
- $result->{$permission} = 1;
- } elsif ( ( defined $permissions->{ $permission . '_own' } ) && ( $permissions->{ $permission . '_own' } eq '1' ) ) {
- next if ( $user eq '' );
- $result->{$permission} = 1 if ( $user eq $result->{created_by} );
- }
- }
- }
- return $results;
+ #reduce
+ for my $permission ( 'update_image', 'delete_image' ) {
+ if ( ( defined $permissions->{ $permission . '_others' } ) && ( $permissions->{ $permission . '_others' } eq '1' ) ) {
+ $result->{$permission} = 1;
+ } elsif ( ( defined $permissions->{ $permission . '_own' } ) && ( $permissions->{ $permission . '_own' } eq '1' ) ) {
+ next if ( $user eq '' );
+ $result->{$permission} = 1 if ( $user eq $result->{created_by} );
+ }
+ }
+ }
+ return $results;
}
sub check_params {
- my $params = shift;
+ my $config = shift;
+ my $params = shift;
- my $checked = { template => template::check($config, $params->{template}, 'image.html' ) };
+ my $checked = { template => template::check( $config, $params->{template}, 'image.html' ) };
- #numeric values
- $checked->{limit} = 100;
- for my $param ( 'project_id', 'studio_id', 'series_id', 'default_studio_id', 'limit' ) {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
- $checked->{$param} = $params->{$param};
- }
- }
- if ( defined $checked->{studio_id} ) {
- $checked->{default_studio_id} = $checked->{studio_id};
- } else {
- $checked->{studio_id} = -1;
- }
+ #numeric values
+ $checked->{limit} = 100;
+ for my $param ( 'project_id', 'studio_id', 'series_id', 'default_studio_id', 'limit' ) {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
+ $checked->{$param} = $params->{$param};
+ }
+ }
+ if ( defined $checked->{studio_id} ) {
+ $checked->{default_studio_id} = $checked->{studio_id};
+ } else {
+ $checked->{studio_id} = -1;
+ }
- $checked->{limit} = 100 unless defined $checked->{limit};
- $checked->{limit} = 100 if ( $checked->{limit} > 100 );
+ $checked->{limit} = 100 unless defined $checked->{limit};
+ $checked->{limit} = 100 if ( $checked->{limit} > 100 );
- #string
- $checked->{search} = '';
- if ( ( defined $params->{search} ) && ( $params->{search} =~ /^\s*(.+?)\s*$/ ) ) {
- $checked->{search} = $1;
- }
+ #string
+ $checked->{search} = '';
+ if ( ( defined $params->{search} ) && ( $params->{search} =~ /^\s*(.+?)\s*$/ ) ) {
+ $checked->{search} = $1;
+ }
- for my $attr ( 'update_name', 'update_description', 'licence' ) {
- $checked->{$attr} = '';
- if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /^\s*(.+?)\s*$/ ) ) {
- $checked->{$attr} = $params->{$attr};
- }
- }
+ for my $attr ( 'update_name', 'update_description', 'licence' ) {
+ $checked->{$attr} = '';
+ if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /^\s*(.+?)\s*$/ ) ) {
+ $checked->{$attr} = $params->{$attr};
+ }
+ }
- #Words
- $checked->{delete_image} = '';
- $checked->{save_image} = '';
- for my $attr ( 'save_image', 'delete_image', 'show', 'filename' ) {
- $checked->{$attr} = '';
- if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\S+)/ ) ) {
- $checked->{$attr} = $params->{$attr};
- }
- }
+ #Words
+ $checked->{delete_image} = '';
+ $checked->{save_image} = '';
+ for my $attr ( 'save_image', 'delete_image', 'show', 'filename' ) {
+ $checked->{$attr} = '';
+ if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\S+)/ ) ) {
+ $checked->{$attr} = $params->{$attr};
+ }
+ }
- #checkboxes
- for my $param ('public') {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /([01])/ ) ) {
- $checked->{$param} = $1;
- }
- }
+ #checkboxes
+ for my $param ('public') {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /([01])/ ) ) {
+ $checked->{$param} = $1;
+ }
+ }
- #map show to filename, but overwrite if filename given
- if ( $checked->{show} ne '' ) {
- $checked->{filename} = $checked->{show};
- delete $checked->{show};
- $checked->{limit} = 1;
- } elsif ( $checked->{filename} ne '' ) {
- delete $checked->{show};
- }
+ #map show to filename, but overwrite if filename given
+ if ( $checked->{show} ne '' ) {
+ $checked->{filename} = $checked->{show};
+ delete $checked->{show};
+ $checked->{limit} = 1;
+ } elsif ( $checked->{filename} ne '' ) {
+ delete $checked->{show};
+ }
- $checked->{from} = time::check_date( $params->{from} );
- $checked->{till} = time::check_date( $params->{till} );
+ $checked->{from} = time::check_date( $params->{from} );
+ $checked->{till} = time::check_date( $params->{till} );
- #print STDERR 'checked:'.Dumper ($checked);
+ #print STDERR 'checked:'.Dumper ($checked);
- return $checked;
+ return $checked;
}
diff --git a/website/agenda/planung/imageUpload.cgi b/website/agenda/planung/imageUpload.cgi
index 2db3cb9..e03fb94 100755
--- a/website/agenda/planung/imageUpload.cgi
+++ b/website/agenda/planung/imageUpload.cgi
@@ -13,7 +13,7 @@ require 'CGI.pm';
use Date::Calc();
use Time::Local();
use Image::Magick();
-use Image::Magick::Square();
+use Image::Magick::Square;
use config();
use auth();
@@ -43,76 +43,60 @@ my $error = '';
#get image from multiform before anything else
if ( defined $r ) {
- #Apache2::Request
- # print "Content-type:text/html; charset=UTF-8; \n\n
Apache2::Request
\n";
- my $apr = Apache2::Request->new( $r, POST_MAX => $upload_limit, TEMP_DIR => $tmp_dir );
+ #Apache2::Request
+ my $apr = Apache2::Request->new( $r, POST_MAX => $upload_limit, TEMP_DIR => $tmp_dir );
- #copy params to hash
- my $body = $apr->body();
- if ( defined $body ) {
- for my $key ( keys %$body ) {
+ #copy params to hash
+ my $body = $apr->body();
+ if ( defined $body ) {
+ for my $key ( keys %$body ) {
+ $params->{ scalar($key) } = scalar( $apr->param($key) );
+ }
+ }
- # print "$key=".$apr->param($key)."
\n";
- $params->{ scalar($key) } = scalar( $apr->param($key) ); # unless ($key eq'image');
- }
- }
+ my $status = $apr->parse;
+ $status = '' if ( $status =~ /missing input data/i );
+ if ( $status =~ /limit/i ) {
+ $error = $status;
+ } else {
+ $upload = $apr->upload('image') if ( defined $params->{image} );
+ }
- # print Dumper($params);
-
- # print Dumper($apr);
- my $status = $apr->parse;
-
- # print "Status:$status
";
- $status = '' if ( $status =~ /missing input data/i );
- if ( $status =~ /limit/i ) {
- $error = $status;
- } else {
- $upload = $apr->upload('image') if ( defined $params->{image} );
- }
-
- #dont get params parsed
- # $CGI::POST_MAX = $upload_limit;
- # $CGI::TMPDIRECTORY=$tmp_dir;
- $cgi = new CGI();
-
- # my %params=$cgi->Vars();
- # $params=\%params;
- # $error=$cgi->cgi_error()||$error;
+ $cgi = new CGI();
} else {
- #CGI fallback
- # print "Content-type:text/html; charset=UTF-8; \n\n
CGI
\n";
- $CGI::POST_MAX = $upload_limit;
- $CGI::TMPDIRECTORY = $tmp_dir;
- $cgi = new CGI();
- $error = $cgi->cgi_error() || $error;
- my %params = $cgi->Vars();
- $params = \%params;
+ #CGI fallback
+ $CGI::POST_MAX = $upload_limit;
+ $CGI::TMPDIRECTORY = $tmp_dir;
+ $cgi = new CGI();
+ $error = $cgi->cgi_error() || $error;
+ my %params = $cgi->Vars();
+ $params = \%params;
}
print "Content-type:text/html; charset=UTF-8;\n\n";
my ( $user, $expires ) = auth::get_user( $cgi, $config );
return if ( ( !defined $user ) || ( $user eq '' ) );
my $user_presets = uac::get_user_presets(
- $config,
- {
- user => $user,
- project_id => $params->{project_id},
- studio_id => $params->{studio_id}
- }
+ $config,
+ {
+ user => $user,
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id}
+ }
);
$params->{default_studio_id} = $user_presets->{studio_id};
$params->{studio_id} = $params->{default_studio_id}
- if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) );
+ if ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' );
$params->{project_id} = $user_presets->{project_id}
- if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) );
+ if ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' );
my $request = {
- url => $ENV{QUERY_STRING} || '',
- params => {
- original => $params,
- checked => check_params($params),
- },
+ url => $ENV{QUERY_STRING} || '',
+ params => {
+ original => $params,
+ checked => check_params( $config, $params ),
+ },
};
$request = uac::prepare_request( $request, $user_presets );
@@ -121,37 +105,40 @@ return unless defined uac::check( $config, $params, $user_presets );
my $permissions = $request->{permissions};
-$params->{action} = '' unless ( defined $params->{action} );
+$params->{action} = '' unless defined $params->{action};
if ( $permissions->{create_image} ne '1' ) {
- uac::permissions_denied("create image");
- return 0;
+ uac::permissions_denied("create image");
+ return 0;
}
my $file_info = undef;
if ( $error ne '' ) {
- if ( $error =~ /limit/ ) {
- $params->{error} .= "Image size is limited to " . int( $upload_limit / 1000000 ) . " MB!" . "Please make it smaller and try again!";
- } else {
- $params->{error} .= "Error:'$error'";
- }
+ if ( $error =~ /limit/ ) {
+ $params->{error} .= "Image size is limited to " . int( $upload_limit / 1000000 ) . " MB!" . "Please make it smaller and try again!";
+ } else {
+ $params->{error} .= "Error:'$error'";
+ }
} elsif ( $params->{action} eq 'upload' ) {
- $file_info = upload_file( $config, $cgi, $upload, $user );
- $params->{error} .= $file_info->{error};
- $params = update_database( $config, $params, $file_info, $user ) if ( $params->{error} eq '' );
+ $file_info = upload_file( $config, $cgi, $upload, $user );
+ $params->{error} .= $file_info->{error};
+ $params = update_database( $config, $params, $file_info, $user ) if $params->{error} eq '';
}
-print STDERR $params->{error} . "\n" if defined $params->{error};
+
+print STDERR "upload error: $params->{error}\n" if $params->{error} ne '';
my $out = '';
template::process( $config, 'print', $params->{template}, $params );
-print $cgi->cgi_error() if defined $cgi;
+print $cgi->cgi_error() if (defined $cgi) && (defined $cgi->cgi_error());
+return if $params->{action} eq '';
-#return;
-
-return if ( $params->{action} eq '' );
+$params->{action_result} ||= '';
+$params->{filename} ||= '';
+$params->{image_id} ||= '';
+$params->{name} ||= '';
if ( $params->{error} eq '' ) {
- print qq{
+ print qq{
success
$params->{action_result}
@@ -165,256 +152,244 @@ if ( $params->{error} eq '' ) {
};
} else {
- print qq{
+ print qq{
failed
$params->{error}
};
-
}
sub upload_file {
- my $config = shift;
- my $cgi = shift;
- my $upload = shift;
- my $user = shift;
+ my $config = shift;
+ my $cgi = shift;
+ my $upload = shift;
+ my $user = shift;
- my $result = get_filename( $cgi, $upload );
- return $result if ( $result->{error} ne '' );
+ my $result = get_filename( $cgi, $upload );
+ return $result if ( $result->{error} ne '' );
- my $file = $result->{fh};
- my $filename = $result->{filename};
+ my $file = $result->{fh};
+ my $filename = $result->{filename};
- $result = check_filename($filename);
- print STDERR $result . "\n";
- return $result if ( $result->{error} ne '' );
+ $result = check_filename($filename);
+ #print STDERR $result . "\n";
+ return $result if ( $result->{error} ne '' );
- my $extension = $result->{extension} || '';
+ my $extension = $result->{extension} || '';
- #read file from handle
- my $data;
- my $content = '';
- print STDERR $file . "\n";
+ #read file from handle
+ my $data;
+ my $content = '';
+ #print STDERR $file . "\n";
- #unless (-e $file){}
- binmode $file;
- while ( read $file, $data, 1024 ) {
- $content .= $data;
- }
+ binmode $file;
+ while ( read $file, $data, 1024 ) {
+ $content .= $data;
+ }
- #set filename to MD5 from content
- my $md5_filename = Digest::MD5::md5_base64($content);
- $md5_filename =~ s/[\/\+]/_/gi;
+ #set filename to MD5 from content
+ my $md5_filename = Digest::MD5::md5_base64($content);
+ $md5_filename =~ s/[\/\+]/_/gi;
- return process_image( $config, $filename, $extension, $md5_filename, $content );
+ return process_image( $config, $filename, $extension, $md5_filename, $content );
}
sub update_database {
- my $config = shift;
- my $params = shift;
- my $file_info = shift;
- my $user = shift;
+ my $config = shift;
+ my $params = shift;
+ my $file_info = shift;
+ my $user = shift;
- $params->{upload_path} = $file_info->{upload_path};
- $params->{upload_filename} = $file_info->{upload_filename};
- $params->{filename} = $file_info->{filename};
- $params->{thumb_path} = $file_info->{thumb_path};
- $params->{image_path} = $file_info->{image_path};
- $params->{icon_path} = $file_info->{icon_path};
- $params->{local_media_url} = $config->{locations}->{local_media_url};
+ $params->{upload_path} = $file_info->{upload_path};
+ $params->{upload_filename} = $file_info->{upload_filename};
+ $params->{filename} = $file_info->{filename};
+ $params->{thumb_path} = $file_info->{thumb_path};
+ $params->{image_path} = $file_info->{image_path};
+ $params->{icon_path} = $file_info->{icon_path};
+ $params->{local_media_url} = $config->{locations}->{local_media_url};
- my $name = $params->{name} || '';
- $name = 'neu' unless $params =~ /\S/;
+ my $name = $params->{name} || '';
+ $name = 'neu' unless $params =~ /\S/;
- my $image = {
- filename => $params->{filename},
- name => $name,
- description => $params->{description},
- modified_by => $user,
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- licence => $params->{licence}
- };
+ my $image = {
+ filename => $params->{filename},
+ name => $name,
+ description => $params->{description},
+ modified_by => $user,
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ licence => $params->{licence}
+ };
- #connect
- $config->{access}->{write} = 1;
- my $dbh = db::connect($config);
+ #connect
+ $config->{access}->{write} = 1;
+ my $dbh = db::connect($config);
- my $entries = images::get( $config, { filename => $image->{filename} } );
- if ( ( defined $entries ) && ( scalar(@$entries) > 0 ) ) {
- images::update( $dbh, $image );
- my $entry = $entries->[0];
- $params->{image_id} = $entry->{id};
- } else {
- $image->{created_by} = $user;
- $params->{image_id} = images::insert( $dbh, $image );
- }
- $config->{access}->{write} = 0;
- $params->{action_result} = 'done!';
+ my $entries = images::get( $config, { filename => $image->{filename} } );
+ if ( ( defined $entries ) && ( scalar(@$entries) > 0 ) ) {
+ images::update( $dbh, $image );
+ my $entry = $entries->[0];
+ $params->{image_id} = $entry->{id};
+ } else {
+ $image->{created_by} = $user;
+ $params->{image_id} = images::insert( $dbh, $image );
+ }
+ $config->{access}->{write} = 0;
+ $params->{action_result} = 'done!';
- return $params;
+ return $params;
}
#get filename and filehandle from upload
sub get_filename {
- my $cgi = shift;
- my $upload = shift;
+ my $cgi = shift;
+ my $upload = shift;
- if ( defined $upload ) {
+ # try apache2 module
+ if ( defined $upload ) {
+ my $filename = $upload->filename();
+ return {
+ filename => $filename,
+ fh => $upload->fh(),
+ error => ''
+ };
+ }
- # try apache2 module
- my $filename = $upload->filename();
- return {
- filename => $filename,
- fh => $upload->fh(),
- error => ''
- };
+ # fallback to CGI module
+ my $file = $cgi->param("image");
+ if ( $file =~ /\|/ ) {
+ return { error => "is no file" };
+ }
- }
+ my $file_info = $cgi->uploadInfo($file);
+ if ( defined $file_info ) {
+ my $filename = $file_info->{'Content-Disposition'} || '';
+ if ( $filename =~ /filename=\"(.*?)\"/ ) {
+ $filename = $1;
+ return {
+ filename => $filename,
+ fh => $file,
+ error => ''
+ };
- # fallback to CGI module
- my $file = $cgi->param("image");
- if ( $file =~ /\|/ ) {
- return { error => "is no file" };
- }
+ }
+ }
- my $file_info = $cgi->uploadInfo($file);
- if ( defined $file_info ) {
- my $filename = $file_info->{'Content-Disposition'} || '';
- if ( $filename =~ /filename=\"(.*?)\"/ ) {
- $filename = $1;
- return {
- filename => $filename,
- fh => $file,
- error => ''
- };
-
- }
- }
-
- #error
- return { error => 'Could not detect file name!' };
+ #error
+ return { error => 'Could not detect file name!' };
}
sub check_filename {
- my $filename = shift;
+ my $filename = shift;
- my @valid_extensions = ( 'png', 'jpeg', 'jpg', 'gif', 'pdf', 'txt', 'bmp', 'ps', 'eps', 'wmf' );
- if ( $filename =~ /\.([a-zA-Z]{3,5})$/ ) {
- my $extension = lc $1;
- unless ( grep( /$extension/, @valid_extensions ) ) {
- return { error => 'Following file formats are supported: ' . join( ",", @valid_extensions ) . '!' };
- }
- return {
- extension => $extension,
- error => ''
- };
- } else {
- return { error => 'Not matching file extension found! Supported are: ' . join( ",", @valid_extensions ) . '!' };
- }
+ my @valid_extensions = ( 'png', 'jpeg', 'jpg', 'gif', 'pdf', 'txt', 'bmp', 'ps', 'eps', 'wmf' );
+ if ( $filename =~ /\.([a-zA-Z]{3,5})$/ ) {
+ my $extension = lc $1;
+ unless ( grep( /$extension/, @valid_extensions ) ) {
+ return { error => 'Following file formats are supported: ' . join( ",", @valid_extensions ) . '!' };
+ }
+ return {
+ extension => $extension,
+ error => ''
+ };
+ } else {
+ return { error => 'Not matching file extension found! Supported are: ' . join( ",", @valid_extensions ) . '!' };
+ }
}
sub process_image {
- my $config = shift;
- my $filename = shift;
- my $extension = shift;
- my $md5_filename = shift;
- my $content = shift;
+ my $config = shift;
+ my $filename = shift;
+ my $extension = shift;
+ my $md5_filename = shift;
+ my $content = shift;
- my $upload_path = images::getInternalPath( $config, { type => 'upload', filename => $md5_filename . '.' . $extension } );
- my $thumb_path = images::getInternalPath( $config, { type => 'thumbs', filename => $md5_filename . '.jpg' } );
- my $icon_path = images::getInternalPath( $config, { type => 'icons', filename => $md5_filename . '.jpg' } );
- my $image_path = images::getInternalPath( $config, { type => 'images', filename => $md5_filename . '.jpg' } );
+ my $upload_path = images::getInternalPath( $config, { type => 'upload', filename => $md5_filename . '.' . $extension } );
+ my $thumb_path = images::getInternalPath( $config, { type => 'thumbs', filename => $md5_filename . '.jpg' } );
+ my $icon_path = images::getInternalPath( $config, { type => 'icons', filename => $md5_filename . '.jpg' } );
+ my $image_path = images::getInternalPath( $config, { type => 'images', filename => $md5_filename . '.jpg' } );
- #copy file to upload space
- my $result = images::writeFile( $upload_path, $content );
- return $result if defined $result->{error};
+ #copy file to upload space
+ my $result = images::writeFile( $upload_path, $content );
+ return $result if defined $result->{error};
- #write image
- my $image = new Image::Magick;
- $image->Read($upload_path);
- my $x = $image->Get('width') || 0;
- my $y = $image->Get('height') || 0;
- if ( ( $x == 0 ) || ( $y == 0 ) ) {
- return { error => 'Could not read image!' };
- log::error( $config, 'Cannot read image $filename!' );
- }
+ #write image
+ my $image = new Image::Magick;
+ $image->Read($upload_path);
+ my $x = $image->Get('width') || 0;
+ my $y = $image->Get('height') || 0;
+ if ( ( $x == 0 ) || ( $y == 0 ) ) {
+ return { error => 'Could not read image!' };
+ log::error( $config, 'Cannot read image $filename!' );
+ }
- #set max size image
- if ( $x > 0 && $y > 0 ) {
- if ( $x > $y ) {
- $image->Resize( width => '600', height => int( 600 * $y / $x ) );
- } else {
- $image->Resize( width => int( 600 * $x / $y ), height => '600' );
- }
- }
+ #set max size image
+ if ( $x > 0 && $y > 0 ) {
+ if ( $x > $y ) {
+ $image->Resize( width => '600', height => int( 600 * $y / $x ) );
+ } else {
+ $image->Resize( width => int( 600 * $x / $y ), height => '600' );
+ }
+ }
- #$image->Normalize();
- $image->Write( 'jpg:' . $image_path );
+ #$image->Normalize();
+ $image->Write( 'jpg:' . $image_path );
- #write thumb
- my $thumb = $image;
- $thumb->Trim2Square;
- $thumb->Resize( width => 150, height => 150 );
- $thumb->Write( 'jpg:' . $thumb_path );
+ #write thumb
+ my $thumb = $image;
+ $thumb->Trim2Square;
+ $thumb->Resize( width => 150, height => 150 );
+ $thumb->Write( 'jpg:' . $thumb_path );
- my $icon = $image;
- $icon->Trim2Square;
- $icon->Resize( width => 25, height => 25 );
- $icon->Write( 'jpg:' . $icon_path );
+ my $icon = $image;
+ $icon->Trim2Square;
+ $icon->Resize( width => 25, height => 25 );
+ $icon->Write( 'jpg:' . $icon_path );
- unless ( -e $thumb_path ) {
- return { error => 'could not create thumb file!' };
- }
- unless ( -e $icon_path ) {
- return { error => 'could not create icon file!' };
- }
- unless ( -e $image_path ) {
- return { error => 'could not create image file!' };
- }
+ return { error => 'could not create thumb file!' } unless -e $thumb_path;
+ return { error => 'could not create icon file!' } unless -e $icon_path;
+ return { error => 'could not create image file!' } unless -e $image_path;
- return {
- upload_filename => $filename,
-
- filename => $md5_filename . '.jpg',
- thumb_path => $thumb_path,
- icon_path => $icon_path,
- image_path => $image_path,
-
- error => ''
- };
+ return {
+ upload_filename => $filename,
+ filename => $md5_filename . '.jpg',
+ thumb_path => $thumb_path,
+ icon_path => $icon_path,
+ image_path => $image_path,
+ error => ''
+ };
}
sub check_params {
- my $params = shift;
+ my $config = shift;
+ my $params = shift;
- my $checked = {};
- $checked->{template} = template::check($config, $params->{template}, 'imageUpload' );
+ my $checked = {};
+ $checked->{template} = template::check( $config, $params->{template}, 'imageUpload' );
- #numeric values
- for my $param ( 'project_id', 'studio_id', 'default_studio_id' ) {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
- $checked->{$param} = $params->{$param};
- }
- }
- if ( defined $checked->{studio_id} ) {
- $checked->{default_studio_id} = $checked->{studio_id};
- } else {
- $checked->{studio_id} = -1;
- }
+ #numeric values
+ for my $param ( 'project_id', 'studio_id', 'default_studio_id' ) {
+ $checked->{$param} = $params->{$param} if ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ );
+ }
- #string
- for my $param ( 'debug', 'name', 'description', 'licence' ) {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\s*(.+?)\s*$/ ) ) {
- $checked->{$param} = $1;
- }
- }
+ if ( defined $checked->{studio_id} ) {
+ $checked->{default_studio_id} = $checked->{studio_id};
+ } else {
+ $checked->{studio_id} = -1;
+ }
- #Words
- for my $attr ('action') {
- if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\S+)/ ) ) {
- $checked->{$attr} = $params->{$attr};
- }
- }
- return $checked;
+ #string
+ for my $param ( 'debug', 'name', 'description', 'licence' ) {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\s*(.+?)\s*$/ ) ) {
+ $checked->{$param} = $1;
+ }
+ }
+
+ #Words
+ for my $attr ('action') {
+ if ( ( defined $params->{$attr} ) && ( $params->{$attr} =~ /(\S+)/ ) ) {
+ $checked->{$attr} = $params->{$attr};
+ }
+ }
+ return $checked;
}
diff --git a/website/agenda/planung/localization.cgi b/website/agenda/planung/localization.cgi
index 9fad211..07212c6 100755
--- a/website/agenda/planung/localization.cgi
+++ b/website/agenda/planung/localization.cgi
@@ -24,11 +24,11 @@ my ( $user, $expires ) = auth::get_user( $cgi, $config );
return if ( $user eq '' );
my $request = {
- url => $ENV{QUERY_STRING} || '',
- params => {
- original => $params,
- checked => check_params($params),
- }
+ url => $ENV{QUERY_STRING} || '',
+ params => {
+ original => $params,
+ checked => check_params( $config, $params ),
+ }
};
$params = $request->{params}->{checked};
my $loc = localization::get( $config, { user => $user, file => $params->{usecase} } );
@@ -38,25 +38,23 @@ my $json = JSON::to_json( $loc, { pretty => 1 } );
my @json_lines = ();
for my $line ( split /\n/, $json ) {
- push @json_lines, "'" . $line . "'\n";
+ push @json_lines, "'" . $line . "'\n";
}
$json = $header . $json;
-
-# .'var loc_text='.join('+',@json_lines).";\n"
-# .'var loc = JQuery.parseJSON(loc_text)';
print $json;
sub check_params {
- my $params = shift;
+ my $config = shift;
+ my $params = shift;
- my $checked = { usecase => '' };
+ my $checked = { usecase => '' };
- if ( defined $params->{usecase} ) {
- if ( $params->{usecase} =~ /^([a-z\-\_\,]+)$/ ) {
- $checked->{usecase} = $1;
- }
- }
- return $checked;
+ if ( defined $params->{usecase} ) {
+ if ( $params->{usecase} =~ /^([a-z\-\_\,]+)$/ ) {
+ $checked->{usecase} = $1;
+ }
+ }
+ return $checked;
}
diff --git a/website/agenda/planung/notify_events.cgi b/website/agenda/planung/notify_events.cgi
index 036b147..b2d9612 100755
--- a/website/agenda/planung/notify_events.cgi
+++ b/website/agenda/planung/notify_events.cgi
@@ -3,7 +3,8 @@
use warnings "all";
use strict;
use URI::Escape();
-use Encode();
+
+#use Encode();
use Data::Dumper;
use MIME::Lite();
@@ -31,12 +32,12 @@ my ( $user, $expires ) = auth::get_user( $cgi, $config );
return if ( ( !defined $user ) || ( $user eq '' ) );
my $user_presets = uac::get_user_presets(
- $config,
- {
- user => $user,
- project_id => $params->{project_id},
- studio_id => $params->{studio_id}
- }
+ $config,
+ {
+ user => $user,
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id}
+ }
);
$params->{default_studio_id} = $user_presets->{studio_id};
$params->{studio_id} = $params->{default_studio_id}
@@ -45,11 +46,11 @@ $params->{project_id} = $user_presets->{project_id}
if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) );
my $request = {
- url => $ENV{QUERY_STRING} || '',
- params => {
- original => $params,
- checked => check_params($params),
- },
+ url => $ENV{QUERY_STRING} || '',
+ params => {
+ original => $params,
+ checked => check_params( $config, $params ),
+ },
};
#print STDERR Dumper($request)."\n";
@@ -61,221 +62,222 @@ $params = $request->{params}->{checked};
#show header
unless ( params::isJson() || ( $params->{template} =~ /\.txt/ ) ) {
- my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
- $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
- template::process( $config, 'print', template::check($config, 'default.html'), $headerParams );
+ my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
+ $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
+ template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams );
}
return unless uac::check( $config, $params, $user_presets ) == 1;
$config->{access}->{write} = 0;
if ( $params->{action} eq 'send' ) {
- sendMail( $config, $request );
- return;
+ sendMail( $config, $request );
+ return;
}
show_events( $config, $request );
#show existing event history
sub show_events {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
- for my $attr ( 'project_id', 'studio_id', 'duration' ) { # 'series_id','event_id'
- unless ( defined $params->{$attr} ) {
- uac::print_error( "missing " . $attr . " to show changes" );
- return;
- }
- }
+ for my $attr ( 'project_id', 'studio_id', 'duration' ) { # 'series_id','event_id'
+ unless ( defined $params->{$attr} ) {
+ uac::print_error( "missing " . $attr . " to show changes" );
+ return;
+ }
+ }
- unless ( $permissions->{read_event} == 1 ) {
- uac::print_error("missing permissions to show changes");
- return;
- }
+ unless ( $permissions->{read_event} == 1 ) {
+ uac::print_error("missing permissions to show changes");
+ return;
+ }
- # get events
- my $duration = $params->{duration};
- my $options = {
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- from_date => time::time_to_date(),
- till_date => time::time_to_date( time() + $duration * 24 * 60 * 60 ),
- draft => 0,
- published => 1
- };
+ # get events
+ my $duration = $params->{duration};
+ my $options = {
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ from_date => time::time_to_date(),
+ till_date => time::time_to_date( time() + $duration * 24 * 60 * 60 ),
+ draft => 0,
+ published => 1
+ };
- my $events = series::get_events( $config, $options );
+ my $events = series::get_events( $config, $options );
- # get series_users
- for my $event (@$events) {
- my $mail = getMail( $config, $request, $event );
- $event->{mail} = $mail;
- }
+ # get series_users
+ for my $event (@$events) {
+ my $mail = getMail( $config, $request, $event );
+ $event->{mail} = $mail;
+ }
- return unless defined $events;
- my @events = sort { $a->{start} cmp $b->{start} } @$events;
- $params->{events} = \@events;
+ return unless defined $events;
+ my @events = sort { $a->{start} cmp $b->{start} } @$events;
+ $params->{events} = \@events;
- for my $permission ( keys %{$permissions} ) {
- $params->{'allow'}->{$permission} = $request->{permissions}->{$permission};
- }
+ for my $permission ( keys %{$permissions} ) {
+ $params->{'allow'}->{$permission} = $request->{permissions}->{$permission};
+ }
- $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'notify_events' } );
- template::process($config, 'print', $params->{template}, $params );
+ $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'notify_events' } );
+ template::process( $config, 'print', $params->{template}, $params );
}
sub sendMail {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
- for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) {
- unless ( defined $params->{$attr} ) {
- uac::print_error( "missing " . $attr . " to send notification" );
- return;
- }
- }
+ for my $attr ( 'project_id', 'studio_id', 'series_id', 'event_id' ) {
+ unless ( defined $params->{$attr} ) {
+ uac::print_error( "missing " . $attr . " to send notification" );
+ return;
+ }
+ }
- unless ( $permissions->{read_event} == 1 ) {
- uac::print_error("missing permissions to send notification");
- return;
- }
+ unless ( $permissions->{read_event} == 1 ) {
+ uac::print_error("missing permissions to send notification");
+ return;
+ }
- my $options = {
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- series_id => $params->{series_id},
- event_id => $params->{event_id},
- draft => 0,
- published => 0,
- };
- my $events = series::get_events( $config, $options );
+ my $options = {
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ series_id => $params->{series_id},
+ event_id => $params->{event_id},
+ draft => 0,
+ published => 0,
+ };
+ my $events = series::get_events( $config, $options );
- unless ( scalar(@$events) == 1 ) {
- uac::print_error("did not found exactly one event");
- return;
- }
+ unless ( scalar(@$events) == 1 ) {
+ uac::print_error("did not found exactly one event");
+ return;
+ }
- my $mail = getMail( $config, $request, $events->[0] );
- $mail->{To} = $params->{to} if defined $params->{to};
- $mail->{Cc} = $params->{cc} if defined $params->{cc};
- $mail->{Subject} = $params->{subject} if defined $params->{subject};
- $mail->{Data} = $params->{content} if defined $params->{content};
+ my $mail = getMail( $config, $request, $events->[0] );
+ $mail->{To} = $params->{to} if defined $params->{to};
+ $mail->{Cc} = $params->{cc} if defined $params->{cc};
+ $mail->{Subject} = $params->{subject} if defined $params->{subject};
+ $mail->{Data} = $params->{content} if defined $params->{content};
- my $msg = MIME::Lite->new(
- 'From' => $mail->{'From'},
- 'To' => $mail->{'To'},
- 'Cc' => $mail->{'Cc'},
- 'Reply-To' => $mail->{'Reply-To'},
- 'Subject' => $mail->{'Subject'},
- 'Data' => $mail->{'Data'},
- );
+ my $msg = MIME::Lite->new(
+ 'From' => $mail->{'From'},
+ 'To' => $mail->{'To'},
+ 'Cc' => $mail->{'Cc'},
+ 'Reply-To' => $mail->{'Reply-To'},
+ 'Subject' => $mail->{'Subject'},
+ 'Data' => $mail->{'Data'},
+ );
- print '';
- $msg->print( \*STDOUT );
- print '
';
- $msg->send;
+ print '';
+ $msg->print( \*STDOUT );
+ print '
';
+ $msg->send;
}
sub getMail {
- my $config = shift;
- my $request = shift;
- my $event = shift;
+ my $config = shift;
+ my $request = shift;
+ my $event = shift;
- my $users = series::get_users(
- $config,
- {
- project_id => $event->{project_id},
- studio_id => $event->{studio_id},
- series_id => $event->{series_id}
- }
- );
+ my $users = series::get_users(
+ $config,
+ {
+ project_id => $event->{project_id},
+ studio_id => $event->{studio_id},
+ series_id => $event->{series_id}
+ }
+ );
- my $userNames = [];
- my $userMails = [];
- for my $user (@$users) {
- push @$userNames, ( split( /\s+/, $user->{full_name} ) )[0];
- push @$userMails, $user->{email};
- }
- if ( scalar(@$userMails) == 0 ) {
- $event->{noRecipient} = 1;
- return;
- }
+ my $userNames = [];
+ my $userMails = [];
+ for my $user (@$users) {
+ push @$userNames, ( split( /\s+/, $user->{full_name} ) )[0];
+ push @$userMails, $user->{email};
+ }
+ if ( scalar(@$userMails) == 0 ) {
+ $event->{noRecipient} = 1;
+ return;
+ }
- my $mail = {
- 'From' => 'programm@radiopiloten.de',
- 'To' => join( ', ', @$userMails ),
- 'Cc' => 'programm@radiopiloten.de',
- 'Reply-To' => 'programm@radiopiloten.de',
- 'Subject' => "$event->{start} - $event->{full_title}",
- 'Data' => "Hallo " . join( ' und ', @$userNames ) . ",\n\n"
- };
+ my $mail = {
+ 'From' => 'programm@radiopiloten.de',
+ 'To' => join( ', ', @$userMails ),
+ 'Cc' => 'programm@radiopiloten.de',
+ 'Reply-To' => 'programm@radiopiloten.de',
+ 'Subject' => "$event->{start} - $event->{full_title}",
+ 'Data' => "Hallo " . join( ' und ', @$userNames ) . ",\n\n"
+ };
- $mail->{Data} .= "nur zur Erinnerung...\n\n";
- $mail->{Data} .= "am $event->{weekday_name} ist die naechste '$event->{series_name}'-Sendung.\n\n";
- $mail->{Data} .= "$event->{source_base_url}$event->{cache_base_url}/$config->{controllers}->{event}/$event->{event_id}.html\n\n";
- $mail->{Data} .= "Gruss, $request->{user}\n";
- return $mail;
+ $mail->{Data} .= "nur zur Erinnerung...\n\n";
+ $mail->{Data} .= "am $event->{weekday_name} ist die naechste '$event->{series_name}'-Sendung.\n\n";
+ $mail->{Data} .= "$event->{source_base_url}$event->{cache_base_url}/$config->{controllers}->{event}/$event->{event_id}.html\n\n";
+ $mail->{Data} .= "Gruss, $request->{user}\n";
+ return $mail;
}
sub eventToText {
- my $event = shift;
+ my $event = shift;
- my $s = events::get_keys($event)->{full_title} . "\n";
- $s .= $event->{excerpt} . "\n";
- $s .= $event->{user_excerpt} . "\n";
- $s .= $event->{topic} . "\n";
- $s .= $event->{content} . "\n";
+ my $s = events::get_keys($event)->{full_title} . "\n";
+ $s .= $event->{excerpt} . "\n";
+ $s .= $event->{user_excerpt} . "\n";
+ $s .= $event->{topic} . "\n";
+ $s .= $event->{content} . "\n";
- #print STDERR "DUMP\n$s";
- return $s;
+ #print STDERR "DUMP\n$s";
+ return $s;
}
sub check_params {
- my $params = shift;
+ my $config = shift;
+ my $params = shift;
- my $checked = {};
- my $template = '';
- $checked->{template} = template::check($config, $params->{template}, 'notify_events' );
+ my $checked = {};
+ my $template = '';
+ $checked->{template} = template::check( $config, $params->{template}, 'notify_events' );
- my $debug = $params->{debug} || '';
- if ( $debug =~ /([a-z\_\,]+)/ ) {
- $debug = $1;
- }
- $checked->{debug} = $debug;
+ my $debug = $params->{debug} || '';
+ if ( $debug =~ /([a-z\_\,]+)/ ) {
+ $debug = $1;
+ }
+ $checked->{debug} = $debug;
- #numeric values
- for my $param ( 'event_id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'duration' ) {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
- $checked->{$param} = $params->{$param};
- }
- }
+ #numeric values
+ for my $param ( 'event_id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'duration' ) {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
+ $checked->{$param} = $params->{$param};
+ }
+ }
- for my $param ( 'subject', 'to', 'cc', 'content' ) {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /\S/ ) ) {
- $checked->{$param} = $params->{$param};
- }
- }
+ for my $param ( 'subject', 'to', 'cc', 'content' ) {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /\S/ ) ) {
+ $checked->{$param} = $params->{$param};
+ }
+ }
- if ( defined $checked->{studio_id} ) {
- $checked->{default_studio_id} = $checked->{studio_id};
- } else {
- $checked->{studio_id} = -1;
- }
+ if ( defined $checked->{studio_id} ) {
+ $checked->{default_studio_id} = $checked->{studio_id};
+ } else {
+ $checked->{studio_id} = -1;
+ }
- #actions and roles
- $checked->{action} = '';
- if ( defined $params->{action} ) {
- if ( $params->{action} =~ /^(send)$/ ) {
- $checked->{action} = $params->{action};
- }
- }
+ #actions and roles
+ $checked->{action} = '';
+ if ( defined $params->{action} ) {
+ if ( $params->{action} =~ /^(send)$/ ) {
+ $checked->{action} = $params->{action};
+ }
+ }
- return $checked;
+ return $checked;
}
diff --git a/website/agenda/planung/playout.cgi b/website/agenda/planung/playout.cgi
index 8abe17e..737c343 100755
--- a/website/agenda/planung/playout.cgi
+++ b/website/agenda/planung/playout.cgi
@@ -5,7 +5,8 @@ use strict;
use Data::Dumper;
use URI::Escape();
-use Encode();
+
+#use Encode();
use localization();
use params();
@@ -39,12 +40,12 @@ print "Content-type:text/html; charset=UTF-8;\n\n";
#print STDERR $params->{project_id}."\n";
my $user_presets = uac::get_user_presets(
- $config,
- {
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- user => $user
- }
+ $config,
+ {
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ user => $user
+ }
);
$params->{default_studio_id} = $user_presets->{studio_id};
@@ -56,11 +57,11 @@ $params->{project_id} = $user_presets->{project_id}
#print STDERR $params->{project_id}."\n";
my $request = {
- url => $ENV{QUERY_STRING} || '',
- params => {
- original => $params,
- checked => check_params($params),
- },
+ url => $ENV{QUERY_STRING} || '',
+ params => {
+ original => $params,
+ checked => check_params( $config, $params ),
+ },
};
$request = uac::prepare_request( $request, $user_presets );
@@ -74,88 +75,89 @@ $headerParams->{loc} = localization::get( $config, { user => $user, file => 'men
return unless uac::check( $config, $params, $user_presets ) == 1;
if ( defined $params->{action} ) {
- deleteFromPlayout( $config, $request ) if ( $params->{action} eq 'delete' );
+ deleteFromPlayout( $config, $request ) if ( $params->{action} eq 'delete' );
} else {
- print "missing action\n";
+ print "missing action\n";
}
return;
sub deleteFromPlayout {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
- unless ( $permissions->{update_event_status_playout} == 1 ) {
- uac::permissions_denied('update_event_status_playout');
- return;
- }
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
+ unless ( $permissions->{update_event_status_playout} == 1 ) {
+ uac::permissions_denied('update_event_status_playout');
+ return;
+ }
- for my $attr ( 'project_id', 'studio_id', 'start_date' ) {
- unless ( defined $params->{$attr} ) {
- uac::print_error( "missing " . $attr . " to show event" );
- return;
- }
- }
+ for my $attr ( 'project_id', 'studio_id', 'start_date' ) {
+ unless ( defined $params->{$attr} ) {
+ uac::print_error( "missing " . $attr . " to show event" );
+ return;
+ }
+ }
- $config->{access}->{write} = 1;
- my $dbh = db::connect($config);
+ $config->{access}->{write} = 1;
+ my $dbh = db::connect($config);
- my $result = playout::delete(
- $config, $dbh,
- {
- project_id => $params->{project_id},
- studio_id => $params->{studio_id},
- start => $params->{start_date}
- }
- );
- $config->{access}->{write} = 0;
+ my $result = playout::delete(
+ $config, $dbh,
+ {
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id},
+ start => $params->{start_date}
+ }
+ );
+ $config->{access}->{write} = 0;
- print "result:$result\n";
+ print "result:$result\n";
}
sub check_params {
- my $params = shift;
+ my $config = shift;
+ my $params = shift;
- my $checked = {};
+ my $checked = {};
- my $debug = $params->{debug} || '';
- if ( $debug =~ /([a-z\_\,]+)/ ) {
- $debug = $1;
- }
- $checked->{debug} = $debug;
+ my $debug = $params->{debug} || '';
+ if ( $debug =~ /([a-z\_\,]+)/ ) {
+ $debug = $1;
+ }
+ $checked->{debug} = $debug;
- #actions and roles
- $checked->{action} = '';
- if ( defined $params->{action} ) {
- if ( $params->{action} =~ /^(delete)$/ ) {
- $checked->{action} = $params->{action};
- }
- }
+ #actions and roles
+ $checked->{action} = '';
+ if ( defined $params->{action} ) {
+ if ( $params->{action} =~ /^(delete)$/ ) {
+ $checked->{action} = $params->{action};
+ }
+ }
- #numeric values
- $checked->{exclude} = 0;
- for my $param ( 'project_id', 'studio_id' ) {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
- $checked->{$param} = $params->{$param};
- }
- }
+ #numeric values
+ $checked->{exclude} = 0;
+ for my $param ( 'project_id', 'studio_id' ) {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
+ $checked->{$param} = $params->{$param};
+ }
+ }
- #dates
- for my $param ('start_date') {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d\d\d\d\-\d\d\-\d\d \d\d\:\d\d)/ ) ) {
- $checked->{$param} = $1 . ':00';
- }
- }
+ #dates
+ for my $param ('start_date') {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d\d\d\d\-\d\d\-\d\d \d\d\:\d\d)/ ) ) {
+ $checked->{$param} = $1 . ':00';
+ }
+ }
- if ( defined $checked->{studio_id} ) {
- $checked->{default_studio_id} = $checked->{studio_id};
- } else {
- $checked->{studio_id} = -1;
- }
+ if ( defined $checked->{studio_id} ) {
+ $checked->{default_studio_id} = $checked->{studio_id};
+ } else {
+ $checked->{studio_id} = -1;
+ }
- #$checked->{template}=template::check($config, $params->{template},'playout');
+ #$checked->{template}=template::check($config, $params->{template},'playout');
- return $checked;
+ return $checked;
}
diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi
index f516788..3b5fec0 100755
--- a/website/agenda/planung/projects.cgi
+++ b/website/agenda/planung/projects.cgi
@@ -26,12 +26,12 @@ return if ( $user eq '' );
my $permissions = roles::get_user_permissions($config);
my $user_presets = uac::get_user_presets(
- $config,
- {
- user => $user,
- project_id => $params->{project_id},
- studio_id => $params->{studio_id}
- }
+ $config,
+ {
+ user => $user,
+ project_id => $params->{project_id},
+ studio_id => $params->{studio_id}
+ }
);
$params->{default_studio_id} = $user_presets->{studio_id};
$params->{studio_id} = $params->{default_studio_id}
@@ -40,11 +40,11 @@ $params->{project_id} = $user_presets->{project_id}
if ( ( !( defined $params->{action} ) ) || ( $params->{action} eq '' ) || ( $params->{action} eq 'login' ) );
my $request = {
- url => $ENV{QUERY_STRING} || '',
- params => {
- original => $params,
- checked => check_params($params),
- },
+ url => $ENV{QUERY_STRING} || '',
+ params => {
+ original => $params,
+ checked => check_params( $config, $params ),
+ },
};
$request = uac::prepare_request( $request, $user_presets );
@@ -53,7 +53,7 @@ $params = $request->{params}->{checked};
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
-template::process($config, 'print', template::check($config, 'default.html'), $headerParams );
+template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams );
return unless uac::check( $config, $params, $user_presets ) == 1;
print q{
@@ -63,244 +63,245 @@ print q{
};
if ( defined $params->{action} ) {
- save_project( $config, $request ) if ( $params->{action} eq 'save' );
- delete_project( $config, $request ) if ( $params->{action} eq 'delete' );
- assign_studio( $config, $request ) if ( $params->{action} eq 'assign_studio' );
- unassign_studio( $config, $request ) if ( $params->{action} eq 'unassign_studio' );
+ save_project( $config, $request ) if ( $params->{action} eq 'save' );
+ delete_project( $config, $request ) if ( $params->{action} eq 'delete' );
+ assign_studio( $config, $request ) if ( $params->{action} eq 'assign_studio' );
+ unassign_studio( $config, $request ) if ( $params->{action} eq 'unassign_studio' );
}
$config->{access}->{write} = 0;
show_projects( $config, $request );
sub delete_project {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $permissions = $request->{permissions};
- unless ( $permissions->{delete_project} == 1 ) {
- uac::permissions_denied('delete_project');
- return;
- }
+ my $permissions = $request->{permissions};
+ unless ( $permissions->{delete_project} == 1 ) {
+ uac::permissions_denied('delete_project');
+ return;
+ }
- my $params = $request->{params}->{checked};
- my $columns = project::get_columns($config);
+ my $params = $request->{params}->{checked};
+ my $columns = project::get_columns($config);
- my $entry = {};
- for my $param ( keys %$params ) {
- if ( defined $columns->{$param} ) {
- $entry->{$param} = $params->{$param} || '';
- }
- }
+ my $entry = {};
+ for my $param ( keys %$params ) {
+ if ( defined $columns->{$param} ) {
+ $entry->{$param} = $params->{$param} || '';
+ }
+ }
- my $project_id = $params->{pid} || '';
+ my $project_id = $params->{pid} || '';
- if ( $project_id ne '' ) {
- $config->{access}->{write} = 1;
- $entry->{project_id} = $project_id;
- delete $entry->{studio_id};
- project::delete( $config, $entry );
- uac::print_info("Project deleted");
- }
+ if ( $project_id ne '' ) {
+ $config->{access}->{write} = 1;
+ $entry->{project_id} = $project_id;
+ delete $entry->{studio_id};
+ project::delete( $config, $entry );
+ uac::print_info("Project deleted");
+ }
}
sub save_project {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
- #filter entry for studio columns
- my $columns = project::get_columns($config);
- my $entry = {};
- for my $param ( keys %$params ) {
- if ( defined $columns->{$param} ) {
- $entry->{$param} = $params->{$param} || '';
- }
- }
+ #filter entry for studio columns
+ my $columns = project::get_columns($config);
+ my $entry = {};
+ for my $param ( keys %$params ) {
+ if ( defined $columns->{$param} ) {
+ $entry->{$param} = $params->{$param} || '';
+ }
+ }
- my $project_id = $params->{pid} || '';
- if ( $project_id ne '' ) {
- unless ( $permissions->{update_project} == 1 ) {
- uac::permissions_denied('update_project');
- return;
- }
- $entry->{project_id} = $project_id;
- delete $entry->{studio_id};
+ my $project_id = $params->{pid} || '';
+ if ( $project_id ne '' ) {
+ unless ( $permissions->{update_project} == 1 ) {
+ uac::permissions_denied('update_project');
+ return;
+ }
+ $entry->{project_id} = $project_id;
+ delete $entry->{studio_id};
- $config->{access}->{write} = 1;
- project::update( $config, $entry );
- $config->{access}->{write} = 0;
- uac::print_info("project saved");
- } else {
- unless ( $permissions->{create_project} == 1 ) {
- uac::permissions_denied('create_project');
- return;
- }
- my $projects = project::get( $config, { name => $entry->{name} } );
- if ( scalar @$projects > 0 ) {
- uac::print_error("project with name '$entry->{name}' already exists");
- return;
- }
- delete $entry->{project_id};
- delete $entry->{studio_id};
+ $config->{access}->{write} = 1;
+ project::update( $config, $entry );
+ $config->{access}->{write} = 0;
+ uac::print_info("project saved");
+ } else {
+ unless ( $permissions->{create_project} == 1 ) {
+ uac::permissions_denied('create_project');
+ return;
+ }
+ my $projects = project::get( $config, { name => $entry->{name} } );
+ if ( scalar @$projects > 0 ) {
+ uac::print_error("project with name '$entry->{name}' already exists");
+ return;
+ }
+ delete $entry->{project_id};
+ delete $entry->{studio_id};
- $config->{access}->{write} = 1;
- project::insert( $config, $entry );
- $config->{access}->{write} = 0;
- uac::print_info("project created");
- }
+ $config->{access}->{write} = 1;
+ project::insert( $config, $entry );
+ $config->{access}->{write} = 0;
+ uac::print_info("project created");
+ }
}
sub assign_studio {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
- unless ( $permissions->{assign_project_studio} == 1 ) {
- uac::permissions_denied('assign_project_studio');
- return;
- }
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
+ unless ( $permissions->{assign_project_studio} == 1 ) {
+ uac::permissions_denied('assign_project_studio');
+ return;
+ }
- for my $param ( 'pid', 'sid' ) {
- unless ( defined $params->{$param} ) {
- uac::print_error( 'missing ' . $param );
- return;
- }
- }
- $config->{access}->{write} = 1;
- project::assign_studio(
- $config,
- {
- project_id => $params->{pid},
- studio_id => $params->{sid}
- }
- );
- $config->{access}->{write} = 0;
- uac::print_info("project assigned");
+ for my $param ( 'pid', 'sid' ) {
+ unless ( defined $params->{$param} ) {
+ uac::print_error( 'missing ' . $param );
+ return;
+ }
+ }
+ $config->{access}->{write} = 1;
+ project::assign_studio(
+ $config,
+ {
+ project_id => $params->{pid},
+ studio_id => $params->{sid}
+ }
+ );
+ $config->{access}->{write} = 0;
+ uac::print_info("project assigned");
}
# TODO: unassign series from studio
sub unassign_studio {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
- unless ( $permissions->{assign_project_studio} == 1 ) {
- uac::permissions_denied('assign_project_studio');
- return;
- }
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
+ unless ( $permissions->{assign_project_studio} == 1 ) {
+ uac::permissions_denied('assign_project_studio');
+ return;
+ }
- for my $param ( 'pid', 'sid' ) {
- unless ( defined $params->{$param} ) {
- uac::print_error( 'missing ' . $param );
- return;
- }
- }
- $config->{access}->{write} = 1;
- project::unassign_studio(
- $config,
- {
- project_id => $params->{pid},
- studio_id => $params->{sid}
- }
- );
- $config->{access}->{write} = 0;
- uac::print_info("project unassigned");
+ for my $param ( 'pid', 'sid' ) {
+ unless ( defined $params->{$param} ) {
+ uac::print_error( 'missing ' . $param );
+ return;
+ }
+ }
+ $config->{access}->{write} = 1;
+ project::unassign_studio(
+ $config,
+ {
+ project_id => $params->{pid},
+ studio_id => $params->{sid}
+ }
+ );
+ $config->{access}->{write} = 0;
+ uac::print_info("project unassigned");
}
sub show_projects {
- my $config = shift;
- my $request = shift;
+ my $config = shift;
+ my $request = shift;
- my $params = $request->{params}->{checked};
- my $permissions = $request->{permissions};
+ my $params = $request->{params}->{checked};
+ my $permissions = $request->{permissions};
- unless ( $permissions->{read_project} == 1 ) {
- uac::permissions_denied('read_project');
- return;
- }
+ unless ( $permissions->{read_project} == 1 ) {
+ uac::permissions_denied('read_project');
+ return;
+ }
- my $projects = project::get($config);
- my $studios = studios::get($config);
- my @projects = reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects);
- $projects = \@projects;
+ my $projects = project::get($config);
+ my $studios = studios::get($config);
+ my @projects = reverse sort { $a->{end_date} cmp $b->{end_date} } (@$projects);
+ $projects = \@projects;
- for my $project (@$projects) {
+ for my $project (@$projects) {
- # get assigned studios
- my $project_studio_assignements = project::get_studio_assignments( $config, { project_id => $project->{project_id} } );
- $project->{pid} = $project->{project_id};
+ # get assigned studios
+ my $project_studio_assignements = project::get_studio_assignments( $config, { project_id => $project->{project_id} } );
+ $project->{pid} = $project->{project_id};
- # get assigned studios by id
- my $assigned_studio_by_id = {};
- for my $studio (@$project_studio_assignements) {
- $assigned_studio_by_id->{ $studio->{studio_id} } = 1;
- }
+ # get assigned studios by id
+ my $assigned_studio_by_id = {};
+ for my $studio (@$project_studio_assignements) {
+ $assigned_studio_by_id->{ $studio->{studio_id} } = 1;
+ }
- my $assigned_studios = [];
- my $unassigned_studios = [];
- for my $studio (@$studios) {
- my %studio = %$studio;
- $studio = \%studio;
- $studio->{pid} = $project->{pid};
- $studio->{sid} = $studio->{id};
- if ( defined $assigned_studio_by_id->{ $studio->{id} } ) {
- push @$assigned_studios, $studio;
- } else {
- push @$unassigned_studios, $studio;
- }
- }
- $project->{assigned_studios} = $assigned_studios;
- $project->{unassigned_studios} = $unassigned_studios;
- }
+ my $assigned_studios = [];
+ my $unassigned_studios = [];
+ for my $studio (@$studios) {
+ my %studio = %$studio;
+ $studio = \%studio;
+ $studio->{pid} = $project->{pid};
+ $studio->{sid} = $studio->{id};
+ if ( defined $assigned_studio_by_id->{ $studio->{id} } ) {
+ push @$assigned_studios, $studio;
+ } else {
+ push @$unassigned_studios, $studio;
+ }
+ }
+ $project->{assigned_studios} = $assigned_studios;
+ $project->{unassigned_studios} = $unassigned_studios;
+ }
- $params->{projects} = $projects;
- $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'projects' } );
- uac::set_template_permissions( $permissions, $params );
+ $params->{projects} = $projects;
+ $params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'projects' } );
+ uac::set_template_permissions( $permissions, $params );
- template::process($config, 'print', $params->{template}, $params );
+ template::process( $config, 'print', $params->{template}, $params );
}
sub check_params {
- my $params = shift;
+ my $config = shift;
+ my $params = shift;
- my $checked = {};
+ my $checked = {};
- #template
- my $template = '';
- $template = template::check($config, $params->{template}, 'projects' );
- $checked->{template} = $template;
+ #template
+ my $template = '';
+ $template = template::check( $config, $params->{template}, 'projects' );
+ $checked->{template} = $template;
- #actions
- my $action = '';
- if ( defined $params->{action} ) {
- if ( $params->{action} =~ /^(save|delete|assign_studio|unassign_studio)$/ ) {
- $checked->{action} = $params->{action};
- }
- }
+ #actions
+ my $action = '';
+ if ( defined $params->{action} ) {
+ if ( $params->{action} =~ /^(save|delete|assign_studio|unassign_studio)$/ ) {
+ $checked->{action} = $params->{action};
+ }
+ }
- for my $param ( 'name', 'title', 'subtitle', 'start_date', 'end_date', 'image', 'email' ) {
- if ( defined $params->{$param} ) {
- $checked->{$param} = $params->{$param};
- }
- }
+ for my $param ( 'name', 'title', 'subtitle', 'start_date', 'end_date', 'image', 'email' ) {
+ if ( defined $params->{$param} ) {
+ $checked->{$param} = $params->{$param};
+ }
+ }
- #numeric values
- for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'pid', 'sid' ) {
- if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
- $checked->{$param} = $params->{$param};
- }
- }
- if ( defined $checked->{studio_id} ) {
- $checked->{default_studio_id} = $checked->{studio_id};
- } else {
- $checked->{studio_id} = -1;
- }
+ #numeric values
+ for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'pid', 'sid' ) {
+ if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
+ $checked->{$param} = $params->{$param};
+ }
+ }
+ if ( defined $checked->{studio_id} ) {
+ $checked->{default_studio_id} = $checked->{studio_id};
+ } else {
+ $checked->{studio_id} = -1;
+ }
- return $checked;
+ return $checked;
}
diff --git a/website/agenda/planung/requestPassword.cgi b/website/agenda/planung/requestPassword.cgi
index 87c9893..6432515 100755
--- a/website/agenda/planung/requestPassword.cgi
+++ b/website/agenda/planung/requestPassword.cgi
@@ -19,7 +19,7 @@ my $r = shift;
my $config = config::get('../config/config.cgi');
my $debug = $config->{system}->{debug};
-$params = check_params($params);
+$params = check_params( $config, $params );
print "Content-type:text/html\n\n";
print qq{
@@ -31,100 +31,100 @@ print qq{
};
if ( defined $params->{user} ) {
- sendToken( $config, $params );
- return;
+ sendToken( $config, $params );
+ return;
} else {
- my $result = checkToken( $config, $params );
- return;
+ my $result = checkToken( $config, $params );
+ return;
}
sub sendToken {
- my $config = shift;
- my $params = shift;
- my $entry = password_requests::sendToken( $config, { user => $params->{user} } );
- if ( defined $entry ) {
- print "Please check you mails\n";
- } else {
- print "Sorry\n";
- }
+ my $config = shift;
+ my $params = shift;
+ my $entry = password_requests::sendToken( $config, { user => $params->{user} } );
+ if ( defined $entry ) {
+ print "Please check you mails\n";
+ } else {
+ print "Sorry\n";
+ }
}
sub checkToken {
- my $config = shift;
- my $params = shift;
+ my $config = shift;
+ my $params = shift;
- my $token = $params->{token};
+ my $token = $params->{token};
- my $entry = password_requests::get( $config, { token => $token } );
- unless ( defined $entry ) {
- print "invalid token\n";
- return undef;
- }
+ my $entry = password_requests::get( $config, { token => $token } );
+ unless ( defined $entry ) {
+ print "invalid token\n";
+ return undef;
+ }
- print STDERR Dumper($entry);
- my $created_at = $entry->{created_at};
- unless ( defined $created_at ) {
- print "invalid token age\n";
- return undef;
- }
+ print STDERR Dumper($entry);
+ my $created_at = $entry->{created_at};
+ unless ( defined $created_at ) {
+ print "invalid token age\n";
+ return undef;
+ }
- my $age = time() - time::datetime_to_time($created_at);
- if ( $age > 600 ) {
- print "token is too old\n";
- password_requests::delete( $config, { token => $token } );
- return undef;
- }
+ my $age = time() - time::datetime_to_time($created_at);
+ if ( $age > 600 ) {
+ print "token is too old\n";
+ password_requests::delete( $config, { token => $token } );
+ return undef;
+ }
- $config->{access}->{write} = 1;
- $entry->{max_attempts}++;
- password_requests::update( $config, $entry );
- $config->{access}->{write} = 0;
+ $config->{access}->{write} = 1;
+ $entry->{max_attempts}++;
+ password_requests::update( $config, $entry );
+ $config->{access}->{write} = 0;
- if ( $entry->{max_attempts} > 10 ) {
- print "too many failed attempts, please request a new token by mail\n";
- password_requests::delete( $config, { token => $token } );
- return undef;
- }
+ if ( $entry->{max_attempts} > 10 ) {
+ print "too many failed attempts, please request a new token by mail\n";
+ password_requests::delete( $config, { token => $token } );
+ return undef;
+ }
- unless ( ( defined $params->{user_password} ) && ( defined $params->{user_password2} ) ) {
- printForm($token);
- return undef;
- }
+ unless ( ( defined $params->{user_password} ) && ( defined $params->{user_password2} ) ) {
+ printForm($token);
+ return undef;
+ }
- if ( $params->{action} eq 'change' ) {
- my $user = $entry->{user};
- my $request = {
- config => $config,
- params => { checked => $params }
- };
- my $result = password_requests::changePassword( $config, $request, $user );
+ if ( $params->{action} eq 'change' ) {
+ my $user = $entry->{user};
+ my $request = {
+ config => $config,
+ params => { checked => $params }
+ };
+ my $result = password_requests::changePassword( $config, $request, $user );
- if ( defined $result->{error} ) {
+ if ( defined $result->{error} ) {
- #print "sorry\n";
- print $result->{error} . "\n";
- printForm($token);
- }
+ #print "sorry\n";
+ print $result->{error} . "\n";
+ printForm($token);
+ }
- if ( defined $result->{success} ) {
+ if ( defined $result->{success} ) {
- #print "success\n";
- print $result->{success} . "\n";
- password_requests::delete( $config, { user => $user } );
- my $url = $config->{locations}->{editor_base_url};
- print qq{
+ #print "success\n";
+ print $result->{success} . "\n";
+ password_requests::delete( $config, { user => $user } );
+ my $url = $config->{locations}->{editor_base_url};
+ print qq{
};
- }
- }
+ }
+ }
}
sub printForm {
- my $token = shift;
- print qq{
+ my $token = shift;
+ print qq{