ACL for hardware class config, RT#85057
[freeside.git] / httemplate / elements / menu.html
index 759ae33..0c15995 100644 (file)
@@ -273,6 +273,25 @@ foreach my $svcdb ( FS::part_svc->svc_tables() ) {
 
 }
 
+## adding export test reports
+tie my %report_exports, 'Tie::IxHash';
+my $exports = FS::part_export::export_info();
+my $exportname;
+tie my %export_list, 'Tie::IxHash',
+  '' => '',
+  map { $_ => "$_ - ". $exports->{$_}{desc} }
+  sort { $a cmp $b }
+  keys %$exports;
+;
+
+foreach my $export (keys %export_list) {
+  $report_exports{"$export export test"} =
+    [ $fsurl. 'search/report_svc_export_test.cgi?export='.$export,
+      "Report of invalid service setup for services tied to $export export",
+    ] if "FS::part_export::$export"->can('test_export_report');
+}
+$report_services{'exports'} = [ \%report_exports, "Exports" ];
+
 tie my %report_packages, 'Tie::IxHash';
 $report_packages{'Package definitions (by # active)'} =  [ $fsurl.'browse/part_pkg.cgi?active=1', 'Package definitions by number of active packages' ]
   if    $curuser->access_right('Edit package definitions')
@@ -472,6 +491,8 @@ $report_menu{'Employees'}      =  [ \%report_employees, 'Employee reports'  ]
   if keys %report_employees;
 $report_menu{'Billing events'} =  [ $fsurl.'search/report_cust_event.html', 'Search billing events by date and status' ]
   if $curuser->access_right('Billing event reports');
+$report_menu{'Billing event fees'} =  [ $fsurl.'search/report_cust_event_fee.html', 'Search fees triggered by billing events' ]
+  if $curuser->access_right('Billing event reports');
 $report_menu{'Financial'}      = [ \%report_financial, 'Financial reports' ]
   if $curuser->access_right('Financial reports') 
   or $curuser->access_right('Receivables report');
@@ -552,7 +573,7 @@ $tools_menu{'Business card scan'} = [ $fsurl.'edit/prospect_main-upload.html' ]
   if $curuser->access_right('New prospect');
 $tools_menu{'Time Queue'} =  [ $fsurl.'search/report_timeworked.html', 'View pending support time' ]
   if $curuser->access_right('Time queue');
-$tools_menu{'Attachments'} = [ $fsurl.'browse/cust_attachment.html', 'View customer attachments' ]
+$tools_menu{'Attachments'} = [ $fsurl.'search/report_cust_attachment.html', 'View customer attachments' ]
   if !$conf->config('disable_cust_attachment') and $curuser->access_right('View attachments') and $curuser->access_right('Browse attachments');
 $tools_menu{'Importing'} =  [ \%tools_importing, 'Import tools' ]
   if $curuser->access_right('Import');
@@ -637,7 +658,7 @@ $config_export_svc{'Circuits'} = [ \%config_circuit, '' ]
 $config_export_svc{'Fiber'} = [ \%config_fiber, '' ]
   if $curuser->access_right('Configuration');
 $config_export_svc{'Hardware types'} = [ $fsurl.'browse/hardware_class.html', 'Set up hardware type catalog' ]
-  if $curuser->access_right('Configuration');
+  if $curuser->access_right('Edit hardware classes and types');
 
 tie my %config_pkg_reason, 'Tie::IxHash',
   'Cancel reasons' => [ $fsurl.'browse/reason.html?class=C', 'Cancel reasons explain why a service was cancelled.' ],
@@ -876,6 +897,7 @@ if ( $agentnum ) {
     if $conf->config('ticket_system') eq 'RT_Internal';
   $help_menu{'Networking monitoring documentation'} = [ 'http://torrus.org/userguide.pod.html', 'Torrus User Guide' ]
     if $conf->config('network_monitoring_system') eq 'Torrus_Internal';
+  $help_menu{'Developer documentation'} = [ "${fsurl}docs/library/FS.html", 'Developer documentation' ];
   $help_menu{'separator'} = '';
   $help_menu{"About Freeside v$FS::VERSION"} = [ "javascript:about_freeside()", '' ];
   $help_menu{"About RT v$RT::VERSION"} = [ 'http://www.bestpractical.com/rt', 'Request Tracker Homepage' ]