MT2116: Addons to the CSV export
[koha.git] / members / member-password.pl
index 8db7c47..f18db80 100755 (executable)
@@ -9,6 +9,7 @@ use C4::Auth;
 use C4::Output;
 use C4::Context;
 use C4::Members;
+use C4::Branch;
 use C4::Circulation;
 use CGI;
 
@@ -19,7 +20,7 @@ my $input = new CGI;
 my $theme = $input->param('theme') || "default";
                        # only used if allowthemeoverride is set
 
-my ($template, $loggedinuser, $cookie)
+my ($template, $loggedinuser, $cookie, $staffflags)
     = get_template_and_user({template_name => "members/member-password.tmpl",
                             query => $input,
                             type => "intranet",
@@ -30,43 +31,41 @@ my ($template, $loggedinuser, $cookie)
 
 my $flagsrequired;
 $flagsrequired->{borrowers}=1;
-my ($loggedinuser, $cookie, $sessionID) = checkauth($input, 0, $flagsrequired);
+
+#my ($loggedinuser, $cookie, $sessionID) = checkauth($input, 0, $flagsrequired);
 
 my $member=$input->param('member');
 my $cardnumber = $input->param('cardnumber');
 my $destination = $input->param('destination');
-
-my %member2;
-$member2{'borrowernumber'}=$member;
-# my $issues=GetBorrowerIssues(\%member2);
-# my $i=0;
-# foreach (sort keys %$issues) {
-#     $i++;
-# }
-
-my ($bor,$flags)=GetMemberDetails( $member,'');
+my $errormsg;
+my ($bor)=GetMember($member);
+if(( $member ne $loggedinuser ) && ($bor->{'category_type'} eq 'S' ) ) {
+       $errormsg = 'NOPERMISSION' unless($staffflags->{'superlibrarian'} || $staffflags->{'staffaccess'} );
+       # need superlibrarian for koha-conf.xml fakeuser.
+}
 my $newpassword = $input->param('newpassword');
+my $minpw = C4::Context->preference('minPasswordLength');
+$errormsg = 'SHORTPASSWORD' if( $newpassword && $minpw && (length($newpassword) < $minpw ) );
 
-if ( $newpassword ) {
+if ( $newpassword  && ! $errormsg ) {
     my $digest=md5_base64($input->param('newpassword'));
     my $uid = $input->param('newuserid');
     my $dbh=C4::Context->dbh;
-    warn $destination;
     if (changepassword($uid,$member,$digest)) {
-       $template->param(newpassword => $newpassword);
-       if ($destination eq 'circ') {
-           print $input->redirect("/cgi-bin/koha/circ/circulation.pl?findborrower=$cardnumber");               
-       } 
-       else {
-           print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$member");
-       }
-    } 
-    else {
-        $template->param(othernames => $bor->{'othernames'},
+               $template->param(newpassword => $newpassword);
+               if ($destination eq 'circ') {
+                   print $input->redirect("/cgi-bin/koha/circ/circulation.pl?findborrower=$cardnumber");               
+               } else {
+                   print $input->redirect("/cgi-bin/koha/members/moremember.pl?borrowernumber=$member");
+               }
+    } else {
+                       $errormsg = 'BADUSERID';
+           $template->param(othernames => $bor->{'othernames'},
                                                surname     => $bor->{'surname'},
                                                firstname   => $bor->{'firstname'},
                                                userid      => $bor->{'userid'},
-                                               defaultnewpassword => $newpassword );
+                                               defaultnewpassword => $newpassword 
+                                               );
     }
 } else {
     my $userid = $bor->{'userid'};
@@ -77,6 +76,18 @@ if ( $newpassword ) {
     for (my $i=0; $i<$length; $i++) {
        $defaultnewpassword.=substr($chars, int(rand(length($chars))),1);
     }
+       
+    if ( $bor->{'category_type'} eq 'C') {
+        my  ( $catcodes, $labels ) =  GetborCatFromCatType( 'A', 'WHERE category_type = ?' );
+        my $cnt = scalar(@$catcodes);
+        $template->param( 'CATCODE_MULTI' => 1) if $cnt > 1;
+        $template->param( 'catcode' =>    $catcodes->[0])  if $cnt == 1;
+    }
+       
+$template->param( adultborrower => 1 ) if ( $bor->{'category_type'} eq 'A' );
+my ($picture, $dberror) = GetPatronImage($bor->{'cardnumber'});
+$template->param( picture => 1 ) if $picture;
+       
     $template->param( othernames => $bor->{'othernames'},
            surname     => $bor->{'surname'},
            firstname   => $bor->{'firstname'},
@@ -84,7 +95,7 @@ if ( $newpassword ) {
            cardnumber => $bor->{'cardnumber'},
            categorycode => $bor->{'categorycode'},
            category_type => $bor->{'category_type'},
-           category_description => $bor->{'description'},
+           categoryname => $bor->{'description'},
            address => $bor->{'address'},
            address2 => $bor->{'address2'},
            city => $bor->{'city'},
@@ -92,14 +103,19 @@ if ( $newpassword ) {
            phone => $bor->{'phone'},
            email => $bor->{'email'},
            branchcode => $bor->{'branchcode'},
+           branchname => GetBranchName($bor->{'branchcode'}),
            userid      => $bor->{'userid'},
            destination => $destination,
+               is_child        => ($bor->{'category_type'} eq 'C'),
            defaultnewpassword => $defaultnewpassword 
        );
 
 
 }
 
-$template->param( member => $member);
+$template->param( member => $member,
+                                       errormsg => $errormsg,
+                                       $errormsg => 1 ,
+                                       minPasswordLength => $minpw );
 
 output_html_with_http_headers $input, $cookie, $template->output;