fix for bug 1697, as well as repairing inability to change category to Staff
authorJoshua Ferraro <jmf@liblime.com>
Sat, 5 Jan 2008 03:14:34 +0000 (22:14 -0500)
committerJoshua Ferraro <jmf@liblime.com>
Sat, 5 Jan 2008 03:30:25 +0000 (21:30 -0600)
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
installer/data/mysql/en/optional/patron_categories.sql
koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tmpl
members/deletemem.pl

index 9cd4921..56439b4 100644 (file)
@@ -1,18 +1,23 @@
 INSERT INTO `categories` (`categorycode`, `description`, `enrolmentperiod`, `upperagelimit`, `dateofbirthrequired`, `finetype`, `bulk`, `enrolmentfee`, `overduenoticerequired`, `issuelimit`, `reservefee`, `category_type`) VALUES 
 
+-- Adult Patrons
 ('PT','Patron',99,999,18,NULL,NULL,'0.000000',1,NULL,'0.000000','A'),
 ('ST','Student',99,999,18,NULL,NULL,'0.000000',1,NULL,'0.000000','A'),
 ('HB','Home Bound',99,999,18,NULL,NULL,'0.000000',1,NULL,'0.000000','A'),
 
+-- Children
 ('K','Kid',99,17,5,NULL,NULL,'0.000000',1,NULL,'0.000000','C'),
 ('J','Juvenile',99,17,5,NULL,NULL,'0.000000',1,NULL,'0.000000','C'),
 ('YA','Young Adult',99,17,5,NULL,NULL,'0.000000',1,NULL,'0.000000','C'),
 
+-- Professionals
 ('T','Teacher',99,999,18,NULL,NULL,'0.000000',0,NULL,'0.000000','P'),
-('S','Staff',99,999,18,NULL,NULL,'0.000000',0,NULL,'0.000000','P'),
 ('B','Board',99,17,5,NULL,NULL,'0.000000',1,NULL,'0.000000','P'),
 
+-- Institutional
 ('IL','Inter-Library Loan',99,999,18,NULL,NULL,'0.000000',1,NULL,'0.000000','I'),
 ('SC','School',99,999,18,NULL,NULL,'0.000000',1,NULL,'0.000000','I'),
-('L','Library',99,999,18,NULL,NULL,'0.000000',1,NULL,'0.000000','I');
+('L','Library',99,999,18,NULL,NULL,'0.000000',1,NULL,'0.000000','I'),
 
+-- Staff
+('S','Staff',99,999,18,NULL,NULL,'0.000000',0,NULL,'0.000000','S');
index 187efec..f3b5dd5 100644 (file)
@@ -32,6 +32,14 @@ $(document).ready(function() {
 <strong>Insufficient privileges.</strong>
 <p>Other fields updated.</p>
 <!-- /TMPL_IF -->
+<!-- TMPL_IF NAME="CANT_DELETE_STAFF" -->
+<h3>Unable to delete staff user</h3>
+<p>Insufficient privileges.</p>
+<!-- /TMPL_IF -->
+<!-- TMPL_IF NAME="CANT_DELETE_OTHERLIBRARY" -->
+<h3>Unable to delete patrons from other libraries with current settings</h3>
+<p>Insufficient privileges.</p>
+<!-- /TMPL_IF -->
 <!-- TMPL_IF NAME="CANT_DELETE" -->
 <h3>Unable to delete patron:</h3>
 <p>Insufficient privileges.</p>
index e1f8a59..33f35ae 100755 (executable)
@@ -36,9 +36,14 @@ my $input = new CGI;
 
 my $flagsrequired;
 $flagsrequired->{borrowers}=1;
-my ($loggedinuser, $cookie, $sessionID) = checkauth($input, 0, $flagsrequired);
-
-
+my ($template, $borrowernumber, $cookie)
+                = get_template_and_user({template_name => "members/deletemem.tmpl",
+                                        query => $input,
+                                        type => "intranet",
+                                        authnotrequired => 0,
+                                        flagsrequired => {borrowers => 1},
+                                        debug => 1,
+                                        });
 
 #print $input->header;
 my $member=$input->param('member');
@@ -48,21 +53,22 @@ my ($countissues,$issues)=GetPendingIssues($member);
 
 my ($bor)=GetMemberDetails($member,'');
 my $flags=$bor->{flags};
-
 my $userenv = C4::Context->userenv;
-if(C4::Auth::haspermission(undef,$userenv->{'id'},{'staffaccess'=>1})) {
-  print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$member&error=CANT_DELETE");
-       exit 1;
+if ($bor->{category_type} eq "S") {
+    unless(C4::Auth::haspermission(undef,$userenv->{'id'},{'staffaccess'=>1})) {
+        print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$member&error=CANT_DELETE_STAFF");
+        exit 1;
+    }
 }
 
 if (C4::Context->preference("IndependantBranches")) {
-       unless ($userenv->{flags} == 1){
-               unless ($userenv->{'branch'} eq $bor->{'branchcode'}){
-#                      warn "user ".$userenv->{'branch'} ."borrower :". $bor->{'branchcode'};
-                       print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$member&error=CANT_DELETE");
-                       exit 1;
-               }
-       }
+    unless ($userenv->{flags} == 1){
+        unless ($userenv->{'branch'} eq $bor->{'branchcode'}){
+#           warn "user ".$userenv->{'branch'} ."borrower :". $bor->{'branchcode'};
+            print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$member&error=CANT_DELETE_OTHERLIBRARY");
+            exit 1;
+        }
+    }
 }
 my $dbh = C4::Context->dbh;
 my $sth=$dbh->prepare("Select * from borrowers where guarantorid=?");
@@ -70,32 +76,23 @@ $sth->execute($member);
 my $data=$sth->fetchrow_hashref;
 $sth->finish;
 if ($countissues > 0 or $flags->{'CHARGES'}  or $data->{'borrowernumber'}){
-
-       my ($template, $borrowernumber, $cookie)
-               = get_template_and_user({template_name => "members/deletemem.tmpl",
-                                       query => $input,
-                                       type => "intranet",
-                                       authnotrequired => 0,
-                                       flagsrequired => {borrowers => 1},
-                                       debug => 1,
-                                       });
-       #   print $input->header;
-       $template->param(borrowernumber => $member);
-       if ($countissues >0) {
-               $template->param(ItemsOnIssues => $countissues);
-       }
-       if ($flags->{'CHARGES'} ne '') {
-               $template->param(charges => $flags->{'CHARGES'}->{'amount'});
-       }
-       if ($data ne '') {
-               $template->param(guarantees => 1);
-       }
+    #   print $input->header;
+    $template->param(borrowernumber => $member);
+    if ($countissues >0) {
+        $template->param(ItemsOnIssues => $countissues);
+    }
+    if ($flags->{'CHARGES'} ne '') {
+        $template->param(charges => $flags->{'CHARGES'}->{'amount'});
+    }
+    if ($data ne '') {
+        $template->param(guarantees => 1);
+    }
 output_html_with_http_headers $input, $cookie, $template->output;
 
 } else {
-       MoveMemberToDeleted($member);
-       DelMember($member);
-       print $input->redirect("/cgi-bin/koha/members/members-home.pl");
+    MoveMemberToDeleted($member);
+    DelMember($member);
+    print $input->redirect("/cgi-bin/koha/members/members-home.pl");
 }