MT 2051 : granular permissions for guided reports
authorMatthias Meusburger <matthias.meusburger@biblibre.com>
Fri, 16 Oct 2009 15:43:56 +0000 (17:43 +0200)
committerHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Fri, 16 Oct 2009 21:55:50 +0000 (23:55 +0200)
22 files changed:
installer/data/mysql/en/mandatory/userpermissions.sql
installer/data/mysql/updatedatabase.pl
koha-tmpl/intranet-tmpl/prog/en/includes/guided-reports-view.inc
koha-tmpl/intranet-tmpl/prog/en/modules/reports/guided_reports_start.tmpl
koha-tmpl/intranet-tmpl/prog/en/modules/reports/reports-home.tmpl
reports/acquisitions_stats.pl
reports/bor_issues_top.pl
reports/borrowers_out.pl
reports/borrowers_stats.pl
reports/cat_issues_top.pl
reports/catalogue_out.pl
reports/catalogue_stats.pl
reports/dictionary.pl
reports/guided_reports.pl
reports/issues_avg_stats.pl
reports/issues_stats.pl
reports/itemslost.pl
reports/manager.pl
reports/reports-home.pl
reports/reservereport.pl
reports/serials_stats.pl
reports/stats.screen.pl

index 6f4c230..3ae0953 100644 (file)
@@ -1,6 +1,16 @@
 INSERT INTO permissions (module_bit, code, description) VALUES
    ( 1, 'circulate_remaining_permissions', 'Remaining circulation permissions'),
    ( 1, 'override_renewals', 'Override blocked renewals'),
+   (11, 'vendors_manage', 'Manage vendors'),
+   (11, 'contracts_manage', 'Manage contracts'),
+   (11, 'period_manage', 'Manage periods'),
+   (11, 'budget_manage', 'Manage budgets'),
+   (11, 'budget_modify', 'Modify budget (can''t create lines, but can modify existing ones)'),
+   (11, 'planning_manage', 'Manage budget plannings'),
+   (11, 'order_manage', 'Manage orders & basket'),
+   (11, 'group_manage', 'Manage orders & basketgroups'),
+   (11, 'order_receive', 'Manage orders & basket'),
+   (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
    (13, 'edit_news', 'Write news for the OPAC and staff interfaces'),
    (13, 'label_creator', 'Create printable labels and barcodes from catalog and patron data'),
    (13, 'edit_calendar', 'Define days when the library is closed'),
@@ -18,15 +28,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
    (13, 'schedule_tasks', 'Schedule tasks to run'),
    (13, 'batchmod', 'Perform batch modification of items'),
    (13, 'batchdel', 'Perform batch deletion of items'),
-   (13, 'manage_csv_profiles', 'Manage CSV export profiles')
-   (11, 'vendors_manage', 'Manage vendors'),
-   (11, 'contracts_manage', 'Manage contracts'),
-   (11, 'period_manage', 'Manage periods'),
-   (11, 'budget_manage', 'Manage budgets'),
-   (11, 'budget_modify', 'Modify budget (can''t create lines, but can modify existing ones)'),
-   (11, 'planning_manage', 'Manage budget plannings'),
-   (11, 'order_manage', 'Manage orders & basket'),
-   (11, 'group_manage', 'Manage orders & basketgroups'),
-   (11, 'order_receive', 'Manage orders & basket'),
-   (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)')
+   (13, 'manage_csv_profiles', 'Manage CSV export profiles'),
+   (16, 'execute_reports', 'Execute SQL reports'),
+   (16, 'create_reports', 'Create SQL Reports')
 ;
index fc46f61..89505f1 100755 (executable)
@@ -3071,6 +3071,7 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
     print "Upgrade to $DBversion done (intranetbookbag syspref added)\n";
     SetVersion ($DBversion);
 }
+
 $DBversion = "3.01.00.117";
 if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
     $dbh->do(  qq# ALTER TABLE authorised_values ADD COLUMN `lib_opac` VARCHAR(80) default NULL AFTER `lib` #);
@@ -3079,6 +3080,19 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
     SetVersion ($DBversion);
 }
 
+$DBversion = "3.01.00.118";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+$dbh->do("
+       INSERT INTO `permissions` (`module_bit`, `code`, `description`) VALUES
+               (16, 'execute_reports', 'Execute SQL reports'),
+               (16, 'create_reports', 'Create SQL Reports')
+       ");
+
+    print "Upgrade to $DBversion done (granular permissions for guided reports added)\n";
+    SetVersion ($DBversion);
+}
+
+
 
 =item DropAllForeignKeys($table)
 
index f9ad7bf..f494052 100644 (file)
@@ -1,8 +1,8 @@
 <h5>Build and Run Reports</h5>
 <ul>
-       <li><a href="/cgi-bin/koha/reports/guided_reports.pl?phase=Build%20new">Build New</a></li>
-       <li><a href="/cgi-bin/koha/reports/guided_reports.pl?phase=Use%20saved">Use Saved</a></li>
-       <li><a href="/cgi-bin/koha/reports/guided_reports.pl?phase=Create%20report%20from%20SQL">Create from SQL</a></li>
+       <!-- TMPL_IF NAME="CAN_user_reports_create_report" --><li><a href="/cgi-bin/koha/reports/guided_reports.pl?phase=Build%20new">Build New</a></li><!-- /TMPL_IF -->
+       <!-- TMPL_IF NAME="CAN_user_reports_execute_report" --><li><a href="/cgi-bin/koha/reports/guided_reports.pl?phase=Use%20saved">Use Saved</a></li><!-- /TMPL_IF -->
+       <!-- TMPL_IF NAME="CAN_user_reports_create_report" --><li><a href="/cgi-bin/koha/reports/guided_reports.pl?phase=Create%20report%20from%20SQL">Create from SQL</a></li><!-- /TMPL_IF -->
 </ul>
 <h5>Reports Dictionary</h5>
 <ul>
index a2b333d..3d6ef7f 100644 (file)
@@ -78,18 +78,24 @@ This feature aims to provide some middle ground between the built in
 canned reports and writing custom SQL reports.</p>
 
      <h3>Build And Run Reports</h3>
-             <form action="/cgi-bin/koha/reports/guided_reports.pl">
-                 <input type="hidden" name="phase" value="Build new" />
-               <input type="submit" name="submit" value="Build new"/>
+           <!-- TMPL_IF NAME="CAN_user_reports_create_report" -->
+               <form action="/cgi-bin/koha/reports/guided_reports.pl">
+                   <input type="hidden" name="phase" value="Build new" />
+                   <input type="submit" name="submit" value="Build new"/>
                </form>
+           <!-- /TMPL_IF -->
+           <!-- TMPL_IF NAME="CAN_user_reports_execute_report" -->
                <form action="/cgi-bin/koha/reports/guided_reports.pl">
-               <input type="hidden" name="phase" value="Use saved"/>
-               <input type="submit" name="submit" value="Use saved"/>
+                   <input type="hidden" name="phase" value="Use saved"/>
+                   <input type="submit" name="submit" value="Use saved"/>
                </form>
+           <!-- /TMPL_IF -->
+           <!-- TMPL_IF NAME="CAN_user_reports_create_report" -->
                <form action="/cgi-bin/koha/reports/guided_reports.pl">
-               <input type="hidden" name="phase" value="Create report from SQL"/>
-               <input type="submit" name="submit" value="Create report from SQL"/>
-        </form>
+                   <input type="hidden" name="phase" value="Create report from SQL"/>
+                   <input type="submit" name="submit" value="Create report from SQL"/>
+               </form>
+           <!-- /TMPL_IF -->
 <h3>Reports Dictionary</h3>
 <p>Use the reports dictionary to define custom criteria to use in your reports</p>
 <form action="/cgi-bin/koha/reports/dictionary.pl">
index 33611d6..b6a4828 100644 (file)
@@ -17,9 +17,9 @@
        <div class="yui-u first"><h2>Guided Reports</h2>
        <ul>
                <li><a href="/cgi-bin/koha/reports/guided_reports.pl">Guided Reports Wizard</a></li>
-               <li><a href="/cgi-bin/koha/reports/guided_reports.pl?phase=Build%20new">Build New</a></li>
-               <li><a href="/cgi-bin/koha/reports/guided_reports.pl?phase=Use%20saved">Use Saved</a></li>
-               <li><a href="/cgi-bin/koha/reports/guided_reports.pl?phase=Create%20report%20from%20SQL">Create from SQL</a></li>
+               <!-- TMPL_IF NAME="CAN_user_reports_create_report" --><li><a href="/cgi-bin/koha/reports/guided_reports.pl?phase=Build%20new">Build New</a></li><!-- /TMPL_IF -->
+               <!-- TMPL_IF NAME="CAN_user_reports_execute_report" --><li><a href="/cgi-bin/koha/reports/guided_reports.pl?phase=Use%20saved">Use Saved</a></li><!-- /TMPL_IF -->
+               <!-- TMPL_IF NAME="CAN_user_reports_create_report" --><li><a href="/cgi-bin/koha/reports/guided_reports.pl?phase=Create%20report%20from%20SQL">Create from SQL</a></li><!-- /TMPL_IF -->
        </ul>
        
        <h5>Reports Dictionary</h5>
index edc17b6..aa3ea5d 100755 (executable)
@@ -64,7 +64,7 @@ my ($template, $borrowernumber, $cookie)
                                query => $input,
                                type => "intranet",
                                authnotrequired => 0,
-                               flagsrequired => {reports => 1},
+                               flagsrequired => {reports => '*'},
                                debug => 1,
                                });
 our $sep     = $input->param("sep");
index bb17d0a..9a6b173 100755 (executable)
@@ -60,7 +60,7 @@ my ($template, $borrowernumber, $cookie)
                 query => $input,
                 type => "intranet",
                 authnotrequired => 0,
-                flagsrequired => {reports => 1},
+                flagsrequired => {reports => '*'},
                 debug => 1,
                 });
 our $sep     = $input->param("sep");
index ff5e782..8bc3097 100755 (executable)
@@ -56,7 +56,7 @@ my ($template, $borrowernumber, $cookie)
                 query => $input,
                 type => "intranet",
                 authnotrequired => 0,
-                flagsrequired => {reports => 1},
+                flagsrequired => {reports => '*'},
                 debug => 1,
                 });
 $template->param(do_it => $do_it,
index b225fdb..9887dfa 100755 (executable)
@@ -67,7 +67,7 @@ my ($template, $borrowernumber, $cookie)
                                query => $input,
                                type => "intranet",
                                authnotrequired => 0,
-                               flagsrequired => {reports=> 1},
+                               flagsrequired => {reports => '*'},
                                debug => 1,
                                });
 $template->param(do_it => $do_it);
index 12c8884..96205a8 100755 (executable)
@@ -57,7 +57,7 @@ my ($template, $borrowernumber, $cookie)
                 query => $input,
                 type => "intranet",
                 authnotrequired => 0,
-                flagsrequired => { reports => 1},
+                flagsrequired => { reports => '*'},
                 debug => 1,
                 });
 our $sep     = $input->param("sep");
index 1863883..ec6a696 100755 (executable)
@@ -51,7 +51,7 @@ my ($template, $borrowernumber, $cookie) = get_template_and_user({
     query => $input,
     type => "intranet",
     authnotrequired => 0,
-    flagsrequired => {reports => 1},
+    flagsrequired => {reports => '*'},
     debug => 1,
 });
 
index f3b92b3..220157c 100755 (executable)
@@ -66,7 +66,7 @@ my ($template, $borrowernumber, $cookie)
                                query => $input,
                                type => "intranet",
                                authnotrequired => 0,
-                               flagsrequired => {reports => 1},
+                               flagsrequired => {reports => '*'},
                                debug => 1,
                                });
 $template->param(do_it => $do_it);
index 2c87a49..5bbc473 100755 (executable)
@@ -48,7 +48,7 @@ my    ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { reports => 1 },
+        flagsrequired   => { reports => '*' },
         debug           => 1,
     }
        );
index d0910de..34484eb 100755 (executable)
@@ -41,19 +41,29 @@ Script to control the guided report creation
 
 my $input = new CGI;
 
+my $phase = $input->param('phase');
+my $flagsrequired;
+if ( $phase eq 'Build new' ) {
+    $flagsrequired = 'create_report';
+}
+elsif ( $phase eq 'Use saved' ) {
+    $flagsrequired = 'execute_report';
+} else {
+    $flagsrequired = '*';
+}
+
 my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
     {
         template_name   => "reports/guided_reports_start.tmpl",
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { reports => 1 },
+        flagsrequired   => { reports => $flagsrequired },
         debug           => 1,
     }
 );
 
     my @errors = ();
-my $phase = $input->param('phase');
 if ( !$phase ) {
     $template->param( 'start' => 1 );
     # show welcome page
index 4710295..d37dab0 100755 (executable)
@@ -62,7 +62,7 @@ my ($template, $borrowernumber, $cookie)
                 query => $input,
                 type => "intranet",
                 authnotrequired => 0,
-                flagsrequired => {reports => 1},
+                flagsrequired => {reports => '*'},
                 debug => 1,
                     });
 our $sep     = $input->param("sep");
index 92cc10d..151637a 100755 (executable)
@@ -66,7 +66,7 @@ my ($template, $borrowernumber, $cookie) = get_template_and_user({
        query => $input,
        type => "intranet",
        authnotrequired => 0,
-       flagsrequired => {reports => 1},
+       flagsrequired => {reports => '*'},
        debug => 0,
 });
 our $sep     = $input->param("sep");
index adf231e..547c187 100755 (executable)
@@ -41,7 +41,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $query,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { reports => 1 },
+        flagsrequired   => { reports => '*' },
         debug           => 1,
     }
 );
index 5572f26..a31f93d 100755 (executable)
@@ -35,7 +35,7 @@ my ($template, $borrowernumber, $cookie)
                                query => $input,
                                type => "intranet",
                                authnotrequired => 0,
-                               flagsrequired => {reports => 1},
+                               flagsrequired => {reports => '*'},
                                debug => 1,
                                });
 $template->param(do_it => $do_it,
index bfed7a4..0b849e9 100755 (executable)
@@ -29,7 +29,7 @@ my ($template, $loggedinuser, $cookie)
                                query => $query,
                                type => "intranet",
                                authnotrequired => 0,
-                               flagsrequired => {reports => 1},
+                               flagsrequired => {reports => '*'},
                                debug => 1,
                                });
 $template->param(intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"),
index fa38964..1193756 100755 (executable)
@@ -51,7 +51,7 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
         query           => $input,
         type            => "intranet",
         authnotrequired => 0,
-        flagsrequired   => { reports => 1 },
+        flagsrequired   => { reports => '*' },
         debug           => 1,
     }
 );
index ff98f34..3143bd0 100755 (executable)
@@ -57,7 +57,7 @@ my ($template, $borrowernumber, $cookie)
                                query => $input,
                                type => "intranet",
                                authnotrequired => 0,
-                               flagsrequired => {reports => 1},
+                               flagsrequired => {reports => '*'},
                                debug => 1,
                                });
                                
index ed38459..862c2a2 100755 (executable)
@@ -36,7 +36,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         query           => $input,
         type            => "intranet",
         authnotrequired => 1,
-        flagsrequired   => { reports => 1 },
+        flagsrequired   => { reports => '*' },
         debug           => 1,
     }
 );