2025-11-26 09:31:54 +00:00
#---------------------------------------------------------------------------------
require cfg_paths ;
#---------------------------------------------------------------------------------
$ useropts { domain } = "https://$ENV{SERVER_NAME}" ;
#---------------------------------------------------------------------------------
use session ;
& check_session ;
& session_state ;
& config_set_vars ;
& check_access ;
& config_set_paths ;
& config_set_breadcrumbs ;
& config_common_html ;
# &check_ticket_inbox ;
#---------------------------------------------------------------------------------
sub check_ticket_inbox {
# return unless $useropts{super}{$username} || $useropts{boss}{$username} || $useropts{it}{$username} ;
my $ xtra_sql_where = ( ! $ useropts { super } { $ username } && ! $ useropts { boss } { $ username } && ! $ useropts { it } { $ username } && ! $ useropts { tickets } { $ username } ) ? " AND staff_id = '$userid'" : '' ;
& db_min_ro ( 'tickets' , 'COUNT(unique_id) AS ActiveTickets' , "completed = '0' AND responded = '0'$xtra_sql_where" , '' , '' ) ;
foreach my $ count ( keys % { $ db { tickets } } ) {
our $ activetickets = "$db{tickets}{$count}{ActiveTickets}" ;
}
} #------------------------------------------------------------------------------------
sub session_state {
2026-02-03 12:35:43 +00:00
return if $ ENV { SCRIPT_NAME } =~ m/index.pl/gi || $ ENV { SCRIPT_NAME } =~ m/cron/gi || $ ENV { SCRIPT_NAME } =~ m/get/gi ;
2025-11-26 09:31:54 +00:00
unless ( $ session_state eq 'active' ) { print 'Status: 302 Moved' , "\r\n" , "Location: https://$ENV{SERVER_NAME}/" , "\r\n\r\n" ; }
} #------------------------------------------------------------------------------------
sub config_session_state {
# if ($ENV{SCRIPT_NAME} eq '/index.pl') { return ; }
# if (($ENV{SCRIPT_NAME} =~ m/admin/g) or ($skip_relocate)) { $skip_relocate = 1 ; return ; }
# if (($session_state eq 'expired') or ($session_state eq 'empty')) {
# print 'Status: 302 Moved', "\r\n", "Location: http://$ENV{SERVER_NAME}/", "\r\n\r\n" ;
# }
} #------------------------------------------------------------------------------------
sub check_access {
2026-02-03 12:35:43 +00:00
2025-11-26 09:31:54 +00:00
# return unless $pixellot_limit{$username} || $events_limit{$username} || $is_operator || $usertype eq 'external' || $usertype eq 'schools_manager' ;
return if $ glod_user_level >= 5 ;
2026-02-03 12:35:43 +00:00
# return if $glod_user_level >= 0 ;
2025-11-26 09:31:54 +00:00
# my $path_prefix_ = '/cgi-bin/scripts/' ;
my $ path_prefix_ = $ useropts { 'scripts' } . '/' ;
if ( $ events_limit { $ username } || $ glod_user_level >= 4 ) {
$ exempt_script { $ path_prefix_ . 'costings_detailed_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'costings_summary_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'events_detailed_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'events_summary_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'operators_summary_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'operators_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'event_quotes_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'pdf/event_quote_pdf.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'stock_report.pl' } = 1 ;
}
$ exempt_script { $ path_prefix_ . 'index.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'cameras.pl' } = 1 if ( $ pixellot_limit { $ username } || $ events_limit { $ username } ) ;
$ exempt_script { $ path_prefix_ . 'cameras_report.pl' } = 1 if ( $ pixellot_limit { $ username } || $ events_limit { $ username } ) ;
$ exempt_script { $ path_prefix_ . 'delivered_report.pl' } = 1 if ( $ pixellot_limit { $ username } || $ events_limit { $ username } ) ;
$ exempt_query { '' } = 1 ;
$ exempt_query { 'list' } = 1 ;
if ( $ glod_user_level > 0 ) {
$ exempt_script { $ path_prefix_ . 'logistics_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'logistics_report_test.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'calendar.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_db_cal_events.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'fixed_systems_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'dialog/events.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'calibration_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'calibration_report_test.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'calibration_status_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'dialog/calibration_status_report_uploads.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'dialog/add_logistics_item.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'dialog/add_poc.pl' } = 1 ;
$ exempt_query { $ ENV { QUERY_STRING } } = 1 ;
}
2026-02-03 12:35:43 +00:00
if ( $ usertype eq 'coding_provider' ) {
$ exempt_script { $ path_prefix_ . 'get/get_analytics_charge_client.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_analyst_from_coding_provider.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'dialog/add_fixtures_charge_free_table_reason.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'allfixtures_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'all_fixtures_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'dialog/add_fixtures_analyst.pl' } = 1 ;
}
if ( $ usertype eq 'analytics_client' ) {
$ exempt_script { $ path_prefix_ . 'analytics_event_bookings.pl' } = 1 ;
}
2025-11-26 09:31:54 +00:00
if ( $ glod_user_level > 1 ) {
$ exempt_script { $ path_prefix_ . 'event_quotes.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'event_quotes_test.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_event_quote_conflicts.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_event_quote_conflicts_test.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_venues_from_region.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_cities_from_region.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_delete_attach.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_roe.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'dialog/add_city.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'dialog/add_school.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'dialog/add_sport_type.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'dialog/add_club.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'dialog/add_operator.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'dialog/event_email.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'dialog/email.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'pdf/event_details_pdf.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_poc_or_recipient_contact_nr.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_country_from_region.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_region_country_from_client.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_sss_teams_from_client.pl' } = 1 ;
2026-02-03 12:35:43 +00:00
$ exempt_script { $ path_prefix_ . 'get/get_teams_from_typeahead.pl' } = 1 ;
2025-11-26 09:31:54 +00:00
$ exempt_script { $ path_prefix_ . 'get/get_regions_from_country.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_sss_teams_from_region.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_region_from_city.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'get/get_country_and_region_from_city.pl' } = 1 ;
# $exempt_script{$path_prefix_ . 'get/get_cities_from_country.pl'} = 1 ;
$ exempt_script { $ path_prefix_ . 'set_up_groups_report.pl' } = 1 ;
$ exempt_query { $ ENV { QUERY_STRING } } = 1 ;
$ exempt_query { 'edit' } = 1 ;
$ exempt_query { 'add' } = 1 ;
$ exempt_query { 'view' } = 1 ;
$ exempt_query { 'copy' } = 1 ;
$ exempt_query { 'search' } = 1 ;
}
if ( $ glod_user_level > 2 ) {
$ exempt_script { $ path_prefix_ . 'operators.pl' } = 1 ;
2026-02-03 12:35:43 +00:00
# $exempt_script{$path_prefix_ . 'monitoring_report.pl'} = 1 ;
$ exempt_script { $ path_prefix_ . 'sss_event_feedback.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'aisa_event_feedback.pl' } = 1 ;
2025-11-26 09:31:54 +00:00
$ exempt_script { $ path_prefix_ . 'temp_calibrator_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'mobile_site_surveys_report.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'mobile_system_tracking_report.pl' } = 1 ;
2026-02-03 12:35:43 +00:00
$ exempt_script { $ path_prefix_ . 'troubleshoot_monitoring_report.pl' } = 1 ;
2025-11-26 09:31:54 +00:00
}
if ( $ usertype eq 'support' ) {
$ exempt_script { $ path_prefix_ . 'demos.pl' } = 1 ;
}
if ( $ is_dcb_partner ) {
% exempt_script = ( ) ;
$ exempt_script { $ path_prefix_ . 'index.pl' } = 1 ;
$ exempt_script { $ path_prefix_ . 'logistics_report.pl' } = 1 ;
2026-02-03 12:35:43 +00:00
}
# print "Content-type: text/html\n\n";
# print "SCRIPT_NAME=$ENV{SCRIPT_NAME}\n" ;
# print "QUERY_STRING=$ENV{QUERY_STRING}\n" ;
# print "path_prefix_=$path_prefix_ \n" ;
# print "exempt_script=$exempt_script{$ENV{SCRIPT_NAME}} \n" ;
2025-11-26 09:31:54 +00:00
unless ( $ exempt_script { $ ENV { SCRIPT_NAME } } ) { print "Content-type: text/html\n\n" ; require '401.pm' ; exit ; }
unless ( $ exempt_query { $ ENV { QUERY_STRING } } || length ( $ ENV { QUERY_STRING } ) > 10 ) { print "Content-type: text/html\n\n" ; require '401.pm' ; exit ; }
} #------------------------------------------------------------------------------------
1 ;