[Koha-patches] [PATCH] [bug #2757] change the opac login generation
Nahuel Angelinetti
nahuel.angelinetti at biblibre.com
Wed Nov 5 12:00:56 CET 2008
This patch change the method used to generate a new login for a user when his informations are modified(memberentry.pl).
Before the login are generated with the first letter of lastname and the 9 first letter of the surname, and do not verify the
login already exist).
Now the login will be lastname.surnameX, where X is an incremented digit if the login already exists.
---
C4/Members.pm | 167 ++++++++++++++++++++++++++---------------------
members/memberentry.pl | 6 +--
2 files changed, 93 insertions(+), 80 deletions(-)
diff --git a/C4/Members.pm b/C4/Members.pm
index 7df9424..735dc5a 100644
--- a/C4/Members.pm
+++ b/C4/Members.pm
@@ -32,80 +32,81 @@ use C4::Biblio;
our ($VERSION, at ISA, at EXPORT, at EXPORT_OK,$debug);
BEGIN {
- $VERSION = 3.02;
- $debug = $ENV{DEBUG} || 0;
- require Exporter;
- @ISA = qw(Exporter);
- #Get data
- push @EXPORT, qw(
- &SearchMember
- &GetMemberDetails
- &GetMember
-
- &GetGuarantees
-
- &GetMemberIssuesAndFines
- &GetPendingIssues
- &GetAllIssues
-
- &get_institutions
- &getzipnamecity
- &getidcity
-
- &GetAge
- &GetCities
- &GetRoadTypes
- &GetRoadTypeDetails
- &GetSortDetails
- &GetTitles
-
- &GetPatronImage
- &PutPatronImage
- &RmPatronImage
-
- &GetMemberAccountRecords
- &GetBorNotifyAcctRecord
-
- &GetborCatFromCatType
- &GetBorrowercategory
- &GetBorrowercategoryList
-
- &GetBorrowersWhoHaveNotBorrowedSince
- &GetBorrowersWhoHaveNeverBorrowed
- &GetBorrowersWithIssuesHistoryOlderThan
-
- &GetExpiryDate
- );
-
- #Modify data
- push @EXPORT, qw(
- &ModMember
- &changepassword
- );
-
- #Delete data
- push @EXPORT, qw(
- &DelMember
- );
-
- #Insert data
- push @EXPORT, qw(
- &AddMember
- &add_member_orgs
- &MoveMemberToDeleted
- &ExtendMemberSubscriptionTo
- );
-
- #Check data
- push @EXPORT, qw(
- &checkuniquemember
- &checkuserpassword
- &Check_Userid
- &fixEthnicity
- ðnicitycategories
- &fixup_cardnumber
- &checkcardnumber
- );
+ $VERSION = 3.02;
+ $debug = $ENV{DEBUG} || 0;
+ require Exporter;
+ @ISA = qw(Exporter);
+ #Get data
+ push @EXPORT, qw(
+ &SearchMember
+ &GetMemberDetails
+ &GetMember
+
+ &GetGuarantees
+
+ &GetMemberIssuesAndFines
+ &GetPendingIssues
+ &GetAllIssues
+
+ &get_institutions
+ &getzipnamecity
+ &getidcity
+
+ &GetAge
+ &GetCities
+ &GetRoadTypes
+ &GetRoadTypeDetails
+ &GetSortDetails
+ &GetTitles
+
+ &GetPatronImage
+ &PutPatronImage
+ &RmPatronImage
+
+ &GetMemberAccountRecords
+ &GetBorNotifyAcctRecord
+
+ &GetborCatFromCatType
+ &GetBorrowercategory
+ &GetBorrowercategoryList
+
+ &GetBorrowersWhoHaveNotBorrowedSince
+ &GetBorrowersWhoHaveNeverBorrowed
+ &GetBorrowersWithIssuesHistoryOlderThan
+
+ &GetExpiryDate
+ );
+
+ #Modify data
+ push @EXPORT, qw(
+ &ModMember
+ &changepassword
+ );
+
+ #Delete data
+ push @EXPORT, qw(
+ &DelMember
+ );
+
+ #Insert data
+ push @EXPORT, qw(
+ &AddMember
+ &add_member_orgs
+ &MoveMemberToDeleted
+ &ExtendMemberSubscriptionTo
+ );
+
+ #Check data
+ push @EXPORT, qw(
+ &checkuniquemember
+ &checkuserpassword
+ &Check_Userid
+ &Generate_Userid
+ &fixEthnicity
+ ðnicitycategories
+ &fixup_cardnumber
+ &checkcardnumber
+ );
}
=head1 NAME
@@ -164,7 +165,7 @@ sub SearchMember {
my $count;
my @data;
my @bind = ();
-
+
# this is used by circulation everytime a new borrowers cardnumber is scanned
# so we can check an exact match first, if that works return, otherwise do the rest
$query = "SELECT * FROM borrowers
@@ -801,6 +802,22 @@ sub Check_Userid {
}
}
+sub Generate_Userid {
+ my ($borrowernumber, $firstname, $surname) = @_;
+ my $newuid;
+ my $offset = 0;
+ do {
+ $firstname =~ s/[[:digit:][:space:][:blank:][:punct:][:cntrl:]]//g;
+ $surname =~ s/[[:digit:][:space:][:blank:][:punct:][:cntrl:]]//g;
+ $newuid = lc("$firstname.$surname");
+ $newuid .= $offset unless $offset == 0;
+ $offset++;
+
+ } while (!Check_Userid($newuid,$borrowernumber));
+
+ return $newuid;
+}
+
sub changepassword {
my ( $uid, $member, $digest ) = @_;
diff --git a/members/memberentry.pl b/members/memberentry.pl
index 5dcb648..e845e56 100755
--- a/members/memberentry.pl
+++ b/members/memberentry.pl
@@ -177,13 +177,10 @@ if ($guarantorid eq '') {
#builds default userid
if ( (defined $newdata{'userid'}) && ($newdata{'userid'} eq '')){
- my $onefirstnameletter = substr($data{'firstname'},0,1);
- my $fivesurnameletter = substr($data{'surname'},0,9);
- $newdata{'userid'}=lc($onefirstnameletter.$fivesurnameletter);
+ $newdata{'userid'} = Generate_Userid($borrowernumber, $newdata{'firstname'}, $newdata{'surname'});
}
$debug and warn join "\t", map {"$_: $newdata{$_}"} qw(dateofbirth dateenrolled dateexpiry);
-my $loginexist=0;
my $extended_patron_attributes = ();
if ($op eq 'save' || $op eq 'insert'){
if (checkcardnumber($newdata{cardnumber},$newdata{borrowernumber})){
@@ -210,7 +207,6 @@ if ($op eq 'save' || $op eq 'insert'){
# Check if the userid is unique
unless (Check_Userid($newdata{'userid'},$borrowernumber)) {
push @errors, "ERROR_login_exist";
- $loginexist=1;
}
if (C4::Context->preference('ExtendedPatronAttributes')) {
--
1.5.6.3
More information about the Koha-patches
mailing list