From 94d4ca59d880a7660a3e2e6c0f8955c84f39f800 Mon Sep 17 00:00:00 2001 From: Milan Date: Sun, 8 Mar 2020 14:04:35 +0100 Subject: [PATCH] set numbered parameters using entry::set_numbers --- lib/calcms/entry.pm | 38 ++++++++++++ website/agenda/planung/assign-series.cgi | 8 +-- website/agenda/planung/assignments.cgi | 8 +-- website/agenda/planung/audio-recordings.cgi | 9 +-- website/agenda/planung/calendar.cgi | 68 +++++---------------- website/agenda/planung/comment.cgi | 9 +-- website/agenda/planung/create-events.cgi | 7 +-- website/agenda/planung/event-history.cgi | 10 +-- website/agenda/planung/event.cgi | 11 +--- website/agenda/planung/help.cgi | 8 +-- website/agenda/planung/image-upload.cgi | 6 +- website/agenda/planung/image.cgi | 9 ++- website/agenda/planung/notify-events.cgi | 9 +-- website/agenda/planung/playout.cgi | 7 +-- website/agenda/planung/projects.cgi | 9 +-- website/agenda/planung/roles.cgi | 10 ++- website/agenda/planung/select-event.cgi | 10 ++- website/agenda/planung/select-series.cgi | 10 ++- website/agenda/planung/series.cgi | 21 +++---- website/agenda/planung/show-image.cgi | 9 ++- website/agenda/planung/show-playout.cgi | 10 +-- website/agenda/planung/studio-timeslots.cgi | 8 +-- website/agenda/planung/studios.cgi | 10 ++- website/agenda/planung/user-settings.cgi | 11 ++-- website/agenda/planung/user-stats.cgi | 9 +-- website/agenda/planung/users.cgi | 9 +-- website/agenda/planung/work-time.cgi | 10 +-- 27 files changed, 136 insertions(+), 207 deletions(-) create mode 100644 lib/calcms/entry.pm diff --git a/lib/calcms/entry.pm b/lib/calcms/entry.pm new file mode 100644 index 0000000..b9b9192 --- /dev/null +++ b/lib/calcms/entry.pm @@ -0,0 +1,38 @@ +package entry; + +use warnings; +use strict; + +sub from_valid($$) { + my ( $params, $attrs ) = @_; + return { map { defined $params->{$_} ? { $_ => $params->{$_} } : () } @$attrs }; +} + +sub set_numbers($$$) { + my ( $entry, $params, $fields ) = @_; + for my $field (@$fields) { + next unless defined $params->{$field}; + if ( $params->{$field} =~ /([\-\d]+)/ ){ + $entry->{$field} = $1; + } + } +} + + +sub set_strings($$$) { + my ( $entry, $params, $attrs ) = @_; + for my $field (@$attrs) { + next unless defined $params->{$field}; + $entry->{$field} = $params->{$field}; + $entry->{$field} =~ s/^\s+//g; + $entry->{$field} =~ s/\s+$//g; + } +} + +sub element_of($$) { + my ( $value, $attrs ) = @_; + return { map { $_ => $_ } @$attrs }->{$value}; +} + +# do not delete last line +1; diff --git a/website/agenda/planung/assign-series.cgi b/website/agenda/planung/assign-series.cgi index 8432817..dba2edb 100755 --- a/website/agenda/planung/assign-series.cgi +++ b/website/agenda/planung/assign-series.cgi @@ -222,11 +222,9 @@ sub check_params { #numeric values $checked->{exclude} = 0; - for my $param ( 'id', 'project_id', 'studio_id', 'series_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'series_id' + ]); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/assignments.cgi b/website/agenda/planung/assignments.cgi index d099e18..2a3c02c 100755 --- a/website/agenda/planung/assignments.cgi +++ b/website/agenda/planung/assignments.cgi @@ -368,11 +368,9 @@ sub check_params { #numeric values $checked->{exclude} = 0; - for my $param ( 'id', 'project_id', 'studio_id', 'series_id', 'event_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'series_id', 'event_id' + ]); for my $param ('event_ids') { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\d,]+$/ ) ) { diff --git a/website/agenda/planung/audio-recordings.cgi b/website/agenda/planung/audio-recordings.cgi index cdcfbbb..bf96f0a 100755 --- a/website/agenda/planung/audio-recordings.cgi +++ b/website/agenda/planung/audio-recordings.cgi @@ -545,13 +545,8 @@ sub check_params { $checked->{template} = template::check( $config, $params->{template}, 'upload-audio-recordings' ); - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id']); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index e1ad26b..2929a53 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -12,6 +12,7 @@ use utf8(); use params(); use config(); use log(); +use entry(); use template(); use calendar(); use auth(); @@ -1871,25 +1872,15 @@ sub check_params { my $template = ''; $checked->{template} = template::check( $config, $params->{template}, 'series' ); - my $debug = $params->{debug} || ''; - if ( $debug =~ /([a-z\_\,]+)/ ) { - $debug = $1; - } - $checked->{debug} = $debug; - #numeric values - $checked->{part} = 0; - $checked->{list} = 0; - for my $param ( + $checked->{part} = 0; + $checked->{list} = 0; + $checked->{open_end} = 1; + entry::set_numbers( $checked, $params, [ 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'part', - 'list', 'day_start' - ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + 'list', 'day_start', 'open_end' + ]); $checked->{day_start} = $config->{date}->{day_starting_hour} unless defined $checked->{day_start}; @@ -1909,56 +1900,27 @@ sub check_params { $checked->{studio_id} = $checked->{default_studio_id}; } - $checked->{open_end} = 1; - for my $param ('open_end') { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } + for my $param ('expires') { + $checked->{$param} = time::check_datetime( $params->{$param} ); } #scalars $checked->{search} = ''; $checked->{filter} = ''; - #$checked->{range}='month'; - for my $param ( 'search', 'filter', 'range' ) { - if ( defined $params->{$param} ) { - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } - - for my $param ('expires') { - $checked->{$param} = time::check_datetime( $params->{$param} ); - } - for my $param ( 'date', 'from_date', 'till_date' ) { $checked->{$param} = time::check_date( $params->{$param} ); } - for my $param ( + entry::set_strings( $checked, $params, [ + 'search', 'filter', 'range', 'series_name', 'title', 'excerpt', 'content', 'program', 'category', 'image', 'user_content' - ) - { - if ( defined $params->{$param} ) { + ]); - #$checked->{$param}=uri_unescape(); - $checked->{$param} = $params->{$param}; - $checked->{$param} =~ s/^\s+//g; - $checked->{$param} =~ s/\s+$//g; - } - } - - #actions and roles - if ( defined $params->{action} ) { - if ( $params->{action} =~ - /^(add_user|remove_user|delete|save|details|show|edit_event|save_event)$/ ) - { - $checked->{action} = $params->{action}; - } - } + $checked->{action} = entry::element_of( $params->{action}, + [ 'add_user', 'remove_user', 'delete', 'save', 'details', 'show', 'edit_event', 'save_event' ] + ); return $checked; } diff --git a/website/agenda/planung/comment.cgi b/website/agenda/planung/comment.cgi index 809b250..ea7fea8 100755 --- a/website/agenda/planung/comment.cgi +++ b/website/agenda/planung/comment.cgi @@ -260,12 +260,9 @@ sub check_params { } $checked->{template} = $template; - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'default_studio_id']); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/create-events.cgi b/website/agenda/planung/create-events.cgi index 5c7039e..0057002 100755 --- a/website/agenda/planung/create-events.cgi +++ b/website/agenda/planung/create-events.cgi @@ -219,11 +219,8 @@ sub check_params { #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}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'duration']); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/event-history.cgi b/website/agenda/planung/event-history.cgi index 1e6384f..a38d4c1 100755 --- a/website/agenda/planung/event-history.cgi +++ b/website/agenda/planung/event-history.cgi @@ -254,13 +254,9 @@ sub check_params { $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}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'event_id', 'v1', 'v2' ) + ]); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index b8d0681..4cb78d6 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -12,6 +12,7 @@ use Encode::Locale(); use params(); use config(); use log(); +use entry(); use template(); use db(); use auth(); @@ -807,17 +808,11 @@ sub check_params { } $checked->{debug} = $debug; - #numeric values - for my $param ( + entry::set_numbers( $checked, $params, [ '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}; diff --git a/website/agenda/planung/help.cgi b/website/agenda/planung/help.cgi index cd819d7..9fd0abc 100755 --- a/website/agenda/planung/help.cgi +++ b/website/agenda/planung/help.cgi @@ -628,11 +628,9 @@ sub check_params { #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}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'default_studio_id' ]); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/image-upload.cgi b/website/agenda/planung/image-upload.cgi index 6af5886..c426360 100755 --- a/website/agenda/planung/image-upload.cgi +++ b/website/agenda/planung/image-upload.cgi @@ -371,9 +371,9 @@ sub check_params { $checked->{template} = template::check( $config, $params->{template}, 'image-upload' ); #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id' ) { - $checked->{$param} = $params->{$param} if ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ); - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'default_studio_id' + ]); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/image.cgi b/website/agenda/planung/image.cgi index 2069c7f..4e98a41 100755 --- a/website/agenda/planung/image.cgi +++ b/website/agenda/planung/image.cgi @@ -418,11 +418,10 @@ sub check_params { #numeric values $checked->{limit} = 100; - for my $param ( 'project_id', 'studio_id', 'series_id', 'event_id', 'pid', 'default_studio_id', 'limit' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'series_id', 'event_id', 'pid', 'default_studio_id', 'limit' + ]); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/notify-events.cgi b/website/agenda/planung/notify-events.cgi index ba611dc..86e11f3 100755 --- a/website/agenda/planung/notify-events.cgi +++ b/website/agenda/planung/notify-events.cgi @@ -248,12 +248,9 @@ sub check_params { } $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}; - } - } + entry::set_numbers( $checked, $params, [ + 'event_id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id', 'duration' + ]); for my $param ( 'subject', 'to', 'cc', 'content' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /\S/ ) ) { diff --git a/website/agenda/planung/playout.cgi b/website/agenda/planung/playout.cgi index 88fa195..35f0033 100755 --- a/website/agenda/planung/playout.cgi +++ b/website/agenda/planung/playout.cgi @@ -131,11 +131,8 @@ sub check_params { #numeric values $checked->{exclude} = 0; - for my $param ( 'project_id', 'studio_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id']); #dates for my $param ('start_date') { diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi index 18794d0..733fbd4 100755 --- a/website/agenda/planung/projects.cgi +++ b/website/agenda/planung/projects.cgi @@ -291,12 +291,9 @@ sub check_params { } } - #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}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'default_studio_id', 'pid', 'sid']); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index 04ab17c..6c26ed1 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -441,12 +441,10 @@ sub check_params { } } - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'default_studio_id' + ]); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/select-event.cgi b/website/agenda/planung/select-event.cgi index 94d9d86..5db60ee 100755 --- a/website/agenda/planung/select-event.cgi +++ b/website/agenda/planung/select-event.cgi @@ -8,6 +8,7 @@ use Data::Dumper; use params(); use config(); +use entry(); use log(); use template(); use auth(); @@ -130,12 +131,9 @@ sub check_params { } $checked->{debug} = $debug; - #numeric values - for my $param ( 'id', 'project_id', 'studio_id', 'series_id', 'event_id', 'p_id', 's_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\-\d]+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'series_id', 'event_id', 'p_id', 's_id' + ]); for my $param ( 'selectProjectStudio', 'selectSeries', 'selectRange' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} eq '1' ) ) { diff --git a/website/agenda/planung/select-series.cgi b/website/agenda/planung/select-series.cgi index d8d282b..3e8c750 100755 --- a/website/agenda/planung/select-series.cgi +++ b/website/agenda/planung/select-series.cgi @@ -8,6 +8,7 @@ use Data::Dumper; use params(); use config(); +use entry(); use log(); use template(); use auth(); @@ -120,12 +121,9 @@ sub check_params { } $checked->{debug} = $debug; - #numeric values - for my $param ( 'id', 'project_id', 'studio_id', 'series_id', 'p_id', 's_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\-\d]+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'series_id', 'p_id', 's_id' + ]); for my $param ( 'selectProjectStudio', 'selectSeries', 'selectRange' ) { if ( ( defined $params->{$param} ) && ( $params->{$param} eq '1' ) ) { diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index a8beedc..198bc44 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -11,6 +11,7 @@ use Encode(); use utf8(); use params(); use config(); +use entry(); use log(); use template(); use auth(); @@ -1432,7 +1433,7 @@ sub check_params { #numeric values $checked->{exclude} = 0; $checked->{action} = $params->{action}; - for my $param ( + entry::set_numbers( $checked, $params, [ 'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'new_series_id', @@ -1441,12 +1442,8 @@ sub check_params { 'event_id', 'weekday', 'week_of_month', 'month', 'nextDay', 'predecessor_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 { @@ -1465,15 +1462,11 @@ sub check_params { $checked->{create_events} = 0; $checked->{publish_events} = 0; } - for my $param ( + + entry::set_numbers( $checked, $params, [ 'frequency', 'duration', 'default_duration', 'create_events', 'publish_events', 'live', 'count_episodes' - ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /(\d+)/ ) ) { - $checked->{$param} = $1; - } - } + ]); #scalars for my $param ( 'search', 'from', 'till', 'period_type' ) { diff --git a/website/agenda/planung/show-image.cgi b/website/agenda/planung/show-image.cgi index e7269d0..ed8a094 100755 --- a/website/agenda/planung/show-image.cgi +++ b/website/agenda/planung/show-image.cgi @@ -8,6 +8,7 @@ use Data::Dumper; use params(); use config(); +use entry(); use log(); use template(); use auth(); @@ -121,11 +122,9 @@ sub check_params { } #numeric values - for my $param ( 'project_id', 'studio_id', 'series_id', 'event_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^[\-\d]+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'series_id', 'event_id' + ]) if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/show-playout.cgi b/website/agenda/planung/show-playout.cgi index 5999271..2c150f0 100755 --- a/website/agenda/planung/show-playout.cgi +++ b/website/agenda/planung/show-playout.cgi @@ -139,13 +139,9 @@ sub check_params { $checked->{error} = ''; $checked->{template} = template::check( $config, $params->{template}, 'show-playout' ); - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'default_studio_id', 'series_id', 'event_id', 'id' + ]); if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; diff --git a/website/agenda/planung/studio-timeslots.cgi b/website/agenda/planung/studio-timeslots.cgi index 834918a..20d44ba 100755 --- a/website/agenda/planung/studio-timeslots.cgi +++ b/website/agenda/planung/studio-timeslots.cgi @@ -373,11 +373,9 @@ sub check_params { #numeric values $checked->{exclude} = 0; - for my $param ( 'id', 'project_id', 'studio_id', 'default_studio_id', 'schedule_id', 'schedule_studio_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'id', 'project_id', 'studio_id', 'default_studio_id', 'schedule_id', 'schedule_studio_id' + ]); if ( ( defined $params->{show_date} ) && ( $params->{show_date} =~ /^(\d\d\d\d)/ ) ) { $checked->{show_date} = $1; diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index 18e26ed..01cbc4a 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -235,12 +235,10 @@ sub check_params { } } - #numeric values - for my $param ( 'project_id', 'studio_id', 'default_studio_id', 'id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'studio_id', 'default_studio_id', 'id' + ]); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/user-settings.cgi b/website/agenda/planung/user-settings.cgi index 511268a..76c6552 100755 --- a/website/agenda/planung/user-settings.cgi +++ b/website/agenda/planung/user-settings.cgi @@ -221,13 +221,10 @@ sub check_params { $checked->{template} = $template; #numeric values - for my $param ( 'project_id', 'default_studio_id', 'studio_id', 'default_studio', - 'default_project' ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'default_studio_id', 'studio_id', 'default_studio', + 'default_project' ]); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/user-stats.cgi b/website/agenda/planung/user-stats.cgi index c55b685..8877a58 100755 --- a/website/agenda/planung/user-stats.cgi +++ b/website/agenda/planung/user-stats.cgi @@ -124,12 +124,9 @@ sub check_params { } } - #numeric values - for my $param ( 'project_id', 'default_studio_id', 'studio_id', 'series_id' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'default_studio_id', 'studio_id', 'series_id']); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/users.cgi b/website/agenda/planung/users.cgi index 0abcbb2..c90a1b4 100755 --- a/website/agenda/planung/users.cgi +++ b/website/agenda/planung/users.cgi @@ -399,12 +399,9 @@ sub check_params { $template = template::check( $config, $params->{template}, 'users' ); $checked->{template} = $template; - #numeric values - for my $param ( 'project_id', 'user_id', 'default_studio_id', 'studio_id', 'disabled' ) { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + entry::set_numbers( $checked, $params, [ + 'project_id', 'user_id', 'default_studio_id', 'studio_id', 'disabled']); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else { diff --git a/website/agenda/planung/work-time.cgi b/website/agenda/planung/work-time.cgi index 3776558..a1c6d43 100755 --- a/website/agenda/planung/work-time.cgi +++ b/website/agenda/planung/work-time.cgi @@ -280,15 +280,11 @@ sub check_params { #numeric values $checked->{exclude} = 0; - for my $param ( + entry::set_numbers( $checked, $params, [ 'project_id', 'studio_id', 'default_studio_id', 'schedule_id', 'exclude', 'show_hint_to_add_schedule', 'weekday week_of_month', 'month' - ) - { - if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) { - $checked->{$param} = $params->{$param}; - } - } + ]); + if ( defined $checked->{studio_id} ) { $checked->{default_studio_id} = $checked->{studio_id}; } else {