Bugzilla – Attachment 76911 Details for
Bug 20287
Move AddMember and ModMember to Koha::Patron
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 20287: Add plain_text_password (& Remove AddMember_Opac)
Bug-20287-Add-plaintextpassword--Remove-AddMemberO.patch (text/plain), 7.81 KB, created by
Jonathan Druart
on 2018-07-12 18:49:52 UTC
(
hide
)
Description:
Bug 20287: Add plain_text_password (& Remove AddMember_Opac)
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2018-07-12 18:49:52 UTC
Size:
7.81 KB
patch
obsolete
>From ec1470ef7918b04653e6269884ade5243227b0bd Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Thu, 22 Feb 2018 17:13:22 -0300 >Subject: [PATCH] Bug 20287: Add plain_text_password (& Remove AddMember_Opac) > >But actually we could remove it if it does not make sense for other use. >Callers could deal with it since the password is not generated here > >Signed-off-by: Josef Moravec <josef.moravec@gmail.com> > >Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> > >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> >--- > C4/Members.pm | 26 -------------------------- > Koha/Patron.pm | 17 ++++++++++++++--- > opac/opac-memberentry.pl | 6 ++++-- > opac/opac-registration-verify.pl | 15 ++++++++------- > t/db_dependent/Members.t | 12 +----------- > 5 files changed, 27 insertions(+), 49 deletions(-) > >diff --git a/C4/Members.pm b/C4/Members.pm >index 7fc67fba17..080146eb11 100644 >--- a/C4/Members.pm >+++ b/C4/Members.pm >@@ -76,11 +76,6 @@ BEGIN { > &changepassword > ); > >- #Insert data >- push @EXPORT, qw( >- &AddMember_Opac >- ); >- > #Check data > push @EXPORT, qw( > &checkuserpassword >@@ -738,27 +733,6 @@ sub IssueSlip { > ); > } > >-=head2 AddMember_Opac >- >-=cut >- >-sub AddMember_Opac { >- my ( %borrower ) = @_; >- >- $borrower{'categorycode'} //= C4::Context->preference('PatronSelfRegistrationDefaultCategory'); >- my $password = $borrower{password}; >- if (not defined $password){ >- my $sr = new String::Random; >- $sr->{'A'} = [ 'A'..'Z', 'a'..'z' ]; >- $password = $sr->randpattern("AAAAAAAAAA"); >- $borrower{'password'} = $password; >- } >- >- my $patron = Koha::Patron->new(\%borrower)->store; >- >- return ( $patron->borrowernumber, $password ); >-} >- > =head2 DeleteExpiredOpacRegistrations > > Delete accounts that haven't been upgraded from the 'temporary' category >diff --git a/Koha/Patron.pm b/Koha/Patron.pm >index 1c245262ba..fa0b53a55b 100644 >--- a/Koha/Patron.pm >+++ b/Koha/Patron.pm >@@ -127,6 +127,18 @@ sub trim_whitespaces { > return $self; > } > >+sub plain_text_password { >+ my ( $self, $password ) = @_; >+ if ( $password ) { >+ $self->{_plain_text_password} = $password; >+ return $self; >+ } >+ return $self->{_plain_text_password} >+ if $self->{_plain_text_password}; >+ >+ return; >+} >+ > sub store { > my ($self) = @_; > >@@ -182,7 +194,7 @@ sub store { > } > > # Make a copy of the plain text password for later use >- my $plain_text_password = $self->password; >+ $self->plain_text_password( $self->password ); > > # Create a disabled account if no password provided > $self->password( $self->password >@@ -214,8 +226,7 @@ sub store { > 'sync' => 1, > 'syncstatus' => 'new', > 'hashed_pin' => >- Koha::NorwegianPatronDB::NLEncryptPIN( >- $plain_text_password), >+ Koha::NorwegianPatronDB::NLEncryptPIN($self->plain_text_password), > } > ); > } >diff --git a/opac/opac-memberentry.pl b/opac/opac-memberentry.pl >index 9cfcb4df61..4eeacf093a 100755 >--- a/opac/opac-memberentry.pl >+++ b/opac/opac-memberentry.pl >@@ -169,7 +169,7 @@ if ( $action eq 'create' ) { > $verification_token = md5_hex( time().{}.rand().{}.$$ ); > } > >- $borrower{password} = Koha::AuthUtils::generate_password unless $borrower{password}; >+ $borrower{password} = Koha::AuthUtils::generate_password unless $borrower{password}; > $borrower{verification_token} = $verification_token; > > Koha::Patron::Modification->new( \%borrower )->store(); >@@ -207,6 +207,8 @@ if ( $action eq 'create' ) { > $template->param( OpacPasswordChange => > C4::Context->preference('OpacPasswordChange') ); > >+ $borrower{categorycode} ||= C4::Context->preference('PatronSelfRegistrationDefaultCategory'); >+ $borrower{password} ||= Koha::AuthUtils::generate_password; > my $patron = Koha::Patron->new( \%borrower )->store; > if ( $patron ) { > C4::Members::Attributes::SetBorrowerAttributes( $patron->borrowernumber, $attributes ); >@@ -220,7 +222,7 @@ if ( $action eq 'create' ) { > ); > } > >- $template->param( password_cleartext => $password ); >+ $template->param( password_cleartext => $patron->plain_text_password ); > $template->param( borrower => $patron->unblessed ); > } else { > # FIXME Handle possible errors here >diff --git a/opac/opac-registration-verify.pl b/opac/opac-registration-verify.pl >index 2d9b9f72cb..3748f5c330 100755 >--- a/opac/opac-registration-verify.pl >+++ b/opac/opac-registration-verify.pl >@@ -23,6 +23,7 @@ use C4::Auth; > use C4::Output; > use C4::Members; > use C4::Form::MessagingPreferences; >+use Koha::AuthUtils; > use Koha::Patrons; > use Koha::Patron::Modifications; > >@@ -59,17 +60,17 @@ if ( > $template->param( > OpacPasswordChange => C4::Context->preference('OpacPasswordChange') ); > >- my $borrower = $m->unblessed(); >+ my $patron_attrs = $m->unblessed; >+ $patron_attrs->{password} ||= Koha::AuthUtils::generate_password; > >- my $password; >- ( $borrowernumber, $password ) = AddMember_Opac(%$borrower); >+ $patron_attrs->{categorycode} ||= C4::Context->preference('PatronSelfRegistrationDefaultCategory'); >+ my $patron = Koha::Patron->new( $patron_attrs )->store; > >- if ($borrowernumber) { >+ if ($patron) { > $m->delete(); >- C4::Form::MessagingPreferences::handle_form_action($cgi, { borrowernumber => $borrowernumber }, $template, 1, C4::Context->preference('PatronSelfRegistrationDefaultCategory') ) if C4::Context->preference('EnhancedMessagingPreferences'); >+ C4::Form::MessagingPreferences::handle_form_action($cgi, { borrowernumber => $patron->borrowernumber }, $template, 1, C4::Context->preference('PatronSelfRegistrationDefaultCategory') ) if C4::Context->preference('EnhancedMessagingPreferences'); > >- $template->param( password_cleartext => $password ); >- my $patron = Koha::Patrons->find( $borrowernumber ); >+ $template->param( password_cleartext => $patron->plain_text_password ); > $template->param( borrower => $patron->unblessed ); > $template->param( > PatronSelfRegistrationAdditionalInstructions => >diff --git a/t/db_dependent/Members.t b/t/db_dependent/Members.t >index da5d70bbec..bc0d04902d 100755 >--- a/t/db_dependent/Members.t >+++ b/t/db_dependent/Members.t >@@ -17,7 +17,7 @@ > > use Modern::Perl; > >-use Test::More tests => 50; >+use Test::More tests => 47; > use Test::MockModule; > use Test::Exception; > >@@ -376,16 +376,6 @@ sub _find_member { > return $found; > } > >-# Regression tests for BZ15343 >-my $password=""; >-( $borrowernumber, $password ) = AddMember_Opac(surname=>"Dick",firstname=>'Philip',branchcode => $library2->{branchcode}); >-is( $password =~ /^[a-zA-Z]{10}$/ , 1, 'Test for autogenerated password if none submitted'); >-( $borrowernumber, $password ) = AddMember_Opac(surname=>"Deckard",firstname=>"Rick",password=>"Nexus-6",branchcode => $library2->{branchcode}); >-is( $password eq "Nexus-6", 1, 'Test password used if submitted'); >-$borrower = Koha::Patrons->find( $borrowernumber )->unblessed; >-my $hashed_up = Koha::AuthUtils::hash_password("Nexus-6", $borrower->{password}); >-is( $borrower->{password} eq $hashed_up, 1, 'Check password hash equals hash of submitted password' ); >- > $schema->storage->txn_rollback; > > subtest 'Koha::Patron->store (invalid categorycode) tests' => sub { >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 20287
:
73436
|
76901
|
76902
|
76903
|
76904
|
76905
|
76906
|
76907
|
76908
|
76909
|
76910
| 76911 |
76912
|
76913
|
76914
|
76915
|
76916
|
76917
|
76918
|
76919
|
76920
|
76921
|
76922
|
76923
|
76924
|
76927
|
77221