From 92554ebe956a468f39c421a9defb7bbb7c901df0 Mon Sep 17 00:00:00 2001 From: Milan Date: Tue, 21 Mar 2023 23:04:40 +0100 Subject: [PATCH] remove deprecated role model --- lib/calcms/roles.pm | 162 -------------------- lib/calcms/template.pm | 38 ----- website/agenda/planung/assign-series.cgi | 1 - website/agenda/planung/assignments.cgi | 1 - website/agenda/planung/calendar.cgi | 1 - website/agenda/planung/event.cgi | 1 - website/agenda/planung/help.cgi | 1 - website/agenda/planung/playout.cgi | 1 - website/agenda/planung/projects.cgi | 2 - website/agenda/planung/roles.cgi | 1 - website/agenda/planung/series.cgi | 1 - website/agenda/planung/studio-timeslots.cgi | 1 - website/agenda/planung/studios.cgi | 2 - website/agenda/planung/user-settings.cgi | 1 - website/agenda/planung/user-stats.cgi | 1 - website/agenda/planung/users.cgi | 1 - website/agenda/planung/work-time.cgi | 1 - 17 files changed, 217 deletions(-) delete mode 100644 lib/calcms/roles.pm diff --git a/lib/calcms/roles.pm b/lib/calcms/roles.pm deleted file mode 100644 index eb3f1a6..0000000 --- a/lib/calcms/roles.pm +++ /dev/null @@ -1,162 +0,0 @@ -package roles; - -use strict; -use warnings; -no warnings 'redefine'; - -use Apache2::Reload(); - -use config(); - -#use base 'Exporter'; -my @EXPORT_OK = qw(get_user get_user_permissions get_template_parameters get_jobs); - -my $ROLES = { - 'admin' => { - access_events => 1, - access_images => 1, - access_comments => 1, - access_sync => 1, - access_system => 1, - read_event_all => 1, - create_event => 1, - delete_event => 1, - update_comment => 1, - create_image => 1, - read_image_own => 1, - read_image_all => 1, - update_image_own => 1, - update_image_all => 1, - delete_image_own => 1, - delete_image_all => 1, - sync_own => 1, - sync_all => 1, - sync_select_range => 1, - upload_playlist => 1, - }, - 'dev' => { - access_events => 1, - access_images => 1, - access_comments => 1, - access_sync => 1, - access_system => 0, - read_event_all => 1, - create_event => 1, - delete_event => 1, - update_comment => 1, - create_image => 1, - read_image_own => 1, - read_image_all => 1, - update_image_own => 1, - update_image_all => 1, - delete_image_own => 1, - delete_image_all => 1, - sync_own => 0, - sync_all => 1, - sync_select_range => 1, - upload_playlist => 1, - }, - 'editor' => { - access_events => 1, - access_images => 1, - access_comments => 1, - access_sync => 1, - access_system => 0, - read_event_all => 0, - create_event => 1, - delete_event => 0, - update_comment => 0, - create_image => 1, - read_image_own => 1, - read_image_all => 1, - update_image_own => 1, - update_image_all => 0, - delete_image_own => 1, - delete_image_all => 0, - sync_own => 1, - sync_all => 0, - sync_select_range => 0, - upload_playlist => 1, - }, - 'nobody' => { - access_events => 0, - access_images => 0, - access_comments => 0, - access_sync => 0, - access_system => 0, - read_event_all => 0, - create_event => 0, - delete_event => 0, - update_comment => 0, - create_image => 0, - read_image_own => 0, - read_image_all => 0, - update_image_own => 0, - update_image_all => 0, - delete_image_own => 0, - delete_image_all => 0, - sync_own => 0, - sync_all => 0, - sync_select_range => 0, - upload_playlist => 0, - } -}; - -sub get_user($) { - my $config = shift; - - my $user = $ENV{REMOTE_USER}; - my $users = $config->{users}; - return $user if defined $users->{$user}; - return 'nobody'; -} - -sub get_user_permissions($) { - my $config = shift; - - my $user = $ENV{REMOTE_USER} || ''; - my $roles = $roles::ROLES; - return $roles->{nobody} unless $user =~ /\S/; - my $users = $config->{users}; - if ( defined $users->{$user} ) { - my $role = $users->{$user}; - return $roles->{$role} if defined $roles->{$role}; - } - return $roles->{nobody}; -} - -sub get_user_jobs ($;$) { - my $config = shift; - - my $user = $ENV{REMOTE_USER} || ''; - return [] unless ( $user =~ /\S/ ); - my $result = []; - my $jobs = $config->{jobs}->{job}; - - for my $job (@$jobs) { - for my $job_user ( split /\,/, $job->{users} ) { - push @$result, $job if ( $user eq $job_user ); - } - } - return $result; -} - -sub get_jobs($) { - my $config = shift; - - return $config->{jobs}->{job}; -} - -sub get_template_parameters($$) { - my $config = shift; - my $user_permissions = shift; - - $user_permissions = roles::get_user_permissions($config) unless defined $user_permissions; - my @user_permissions = (); - for my $usecase ( keys %$user_permissions ) { - push @user_permissions, $usecase if $user_permissions->{$usecase} eq '1'; - } - return \@user_permissions; -} - -return 1; diff --git a/lib/calcms/template.pm b/lib/calcms/template.pm index 74e797e..8b3f668 100644 --- a/lib/calcms/template.pm +++ b/lib/calcms/template.pm @@ -18,7 +18,6 @@ use config(); use params(); use project(); use log(); -use roles(); #use base 'Exporter'; our @EXPORT_OK = qw(check process exit_on_missing_permission clear_cache); @@ -45,26 +44,6 @@ sub process($$$$) { $params->{user} = $ENV{REMOTE_USER} unless defined $params->{user}; - my $user_permissions = roles::get_user_permissions($config); - for my $permission ( keys %$user_permissions ) { - $params->{$permission} = $user_permissions->{$permission} - if ( $user_permissions->{$permission} eq '1' ); - } - - $params->{jobs} = roles::get_user_jobs($config); - if ( ( $filename =~ /json\-p/ ) || (params::isJson) ) { - my $header = "Content-type:application/json; charset=utf-8\n\n"; - my $json = JSON->new->pretty(1)->canonical()->encode($params); - - $json = $header . $params->{json_callback} . $json; - if ( ( defined $_[1] ) && ( $_[1] eq 'print' ) ) { - print $json. "\n"; - } else { - $_[1] = $json . "\n"; - } - return; - } - unless ( -r $filename ) { log::error( $config, qq{template "$filename" does not exist} ) unless -e $filename; log::error( $config, qq{missing permissions to read "$filename"} ); @@ -207,22 +186,5 @@ sub check($;$$) { return $template; } -#deprecated (for old admin only) -sub exit_on_missing_permission($$) { - my $config = shift; - my $permission = shift; - - my $user_permissions = roles::get_user_permissions($config); - if ( $user_permissions->{$permission} ne '1' ) { - print STDERR "missing permission to $permission\n"; - template::process( - $config, 'print', - template::check( $config, 'default.html' ), - { error => 'sorry, missing permission!' } - ); - die(); - } -} - #do not delete last line! 1; diff --git a/website/agenda/planung/assign-series.cgi b/website/agenda/planung/assign-series.cgi index 075a713..1c60f2e 100755 --- a/website/agenda/planung/assign-series.cgi +++ b/website/agenda/planung/assign-series.cgi @@ -15,7 +15,6 @@ use log(); use template(); use auth(); use uac(); -use roles(); use project(); use studios(); use events(); diff --git a/website/agenda/planung/assignments.cgi b/website/agenda/planung/assignments.cgi index c8c4213..1b12bb3 100755 --- a/website/agenda/planung/assignments.cgi +++ b/website/agenda/planung/assignments.cgi @@ -14,7 +14,6 @@ use log(); use template(); use auth(); use uac(); -use roles(); use project(); use studios(); use events(); diff --git a/website/agenda/planung/calendar.cgi b/website/agenda/planung/calendar.cgi index 092d11f..bf58fc9 100755 --- a/website/agenda/planung/calendar.cgi +++ b/website/agenda/planung/calendar.cgi @@ -20,7 +20,6 @@ use template(); use calendar(); use auth(); use uac(); -use roles(); use project(); use studios(); use events(); diff --git a/website/agenda/planung/event.cgi b/website/agenda/planung/event.cgi index 8770a96..e06d651 100755 --- a/website/agenda/planung/event.cgi +++ b/website/agenda/planung/event.cgi @@ -20,7 +20,6 @@ use db(); use auth(); use uac(); -#use roles; use time(); use markup(); use project(); diff --git a/website/agenda/planung/help.cgi b/website/agenda/planung/help.cgi index ed2ce3b..9b2b9b7 100755 --- a/website/agenda/planung/help.cgi +++ b/website/agenda/planung/help.cgi @@ -14,7 +14,6 @@ use log(); use template(); use auth(); use uac(); -use roles(); use studios(); use markup(); use localization(); diff --git a/website/agenda/planung/playout.cgi b/website/agenda/planung/playout.cgi index ef07329..9d123f5 100755 --- a/website/agenda/planung/playout.cgi +++ b/website/agenda/planung/playout.cgi @@ -15,7 +15,6 @@ use log(); use template(); use auth(); use uac(); -use roles(); use project(); use studios(); use events(); diff --git a/website/agenda/planung/projects.cgi b/website/agenda/planung/projects.cgi index f48ac9d..2db400f 100755 --- a/website/agenda/planung/projects.cgi +++ b/website/agenda/planung/projects.cgi @@ -12,7 +12,6 @@ use params(); use log(); use template(); use auth(); -use roles(); use uac(); use studios(); use series(); @@ -26,7 +25,6 @@ my $config = config::get('../config/config.cgi'); my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( $user eq '' ); -my $permissions = roles::get_user_permissions($config); my $user_presets = uac::get_user_presets( $config, { diff --git a/website/agenda/planung/roles.cgi b/website/agenda/planung/roles.cgi index 5cce20a..6a31e79 100755 --- a/website/agenda/planung/roles.cgi +++ b/website/agenda/planung/roles.cgi @@ -12,7 +12,6 @@ use entry(); use log(); use template(); use auth(); -use roles(); use uac(); use studios(); use localization(); diff --git a/website/agenda/planung/series.cgi b/website/agenda/planung/series.cgi index 631aa54..538cc89 100755 --- a/website/agenda/planung/series.cgi +++ b/website/agenda/planung/series.cgi @@ -16,7 +16,6 @@ use log(); use template(); use auth(); use uac(); -use roles(); use project(); use studios(); use events(); diff --git a/website/agenda/planung/studio-timeslots.cgi b/website/agenda/planung/studio-timeslots.cgi index 8903ee6..91cf393 100755 --- a/website/agenda/planung/studio-timeslots.cgi +++ b/website/agenda/planung/studio-timeslots.cgi @@ -14,7 +14,6 @@ use log(); use template(); use auth(); use uac(); -use roles(); use project(); use studios(); use studio_timeslot_schedule(); diff --git a/website/agenda/planung/studios.cgi b/website/agenda/planung/studios.cgi index e016cb1..463d754 100755 --- a/website/agenda/planung/studios.cgi +++ b/website/agenda/planung/studios.cgi @@ -12,7 +12,6 @@ use params(); use log(); use template(); use auth(); -use roles(); use uac(); use studios(); use series(); @@ -26,7 +25,6 @@ my $config = config::get('../config/config.cgi'); my ( $user, $expires ) = auth::get_user( $config, $params, $cgi ); return if ( $user eq '' ); -my $permissions = roles::get_user_permissions($config); my $user_presets = uac::get_user_presets( $config, { diff --git a/website/agenda/planung/user-settings.cgi b/website/agenda/planung/user-settings.cgi index 29245ca..d123ae8 100755 --- a/website/agenda/planung/user-settings.cgi +++ b/website/agenda/planung/user-settings.cgi @@ -13,7 +13,6 @@ use template(); use auth(); use entry(); use uac(); -use roles(); use project(); use studios(); use params(); diff --git a/website/agenda/planung/user-stats.cgi b/website/agenda/planung/user-stats.cgi index 255faa8..ca26920 100755 --- a/website/agenda/planung/user-stats.cgi +++ b/website/agenda/planung/user-stats.cgi @@ -12,7 +12,6 @@ use log(); use template(); use auth(); use uac(); -use roles(); use project(); use studios(); use params(); diff --git a/website/agenda/planung/users.cgi b/website/agenda/planung/users.cgi index e5eff65..e25d6ac 100755 --- a/website/agenda/planung/users.cgi +++ b/website/agenda/planung/users.cgi @@ -12,7 +12,6 @@ use log(); use template(); use auth(); use uac(); -use roles(); use studios(); use params(); use localization(); diff --git a/website/agenda/planung/work-time.cgi b/website/agenda/planung/work-time.cgi index c295cb0..fee2fba 100755 --- a/website/agenda/planung/work-time.cgi +++ b/website/agenda/planung/work-time.cgi @@ -13,7 +13,6 @@ use log(); use template(); use auth(); use uac(); -use roles(); use project(); use studios(); use work_schedule();