Koha-clms/t/db_dependent
Saiful Amin 7cdba6ba02
Bug 41383: SIP2 server does not search patrons by unique patron attributes (alternate IDs unusable in SIP2)
Currently, Koha::Patrons->find_by_identifier only searches for patrons by userid and cardnumber.

This patch extends this method to also search by unique borrower attributes (where unique_id=1).
This enhancement allows modules like SIP2 to identify patrons using alternative unique identifiers
defined in the system.

Test Plan:
1. Test current behaviour:
   - Go to Administration -> Patron attribute types
   - Create a new Patron attribute with:
      - Patron attribute type code = "AltID"
      - Description = "Alternate ID"
      - Unique identifier checkbox selected
      - Save
   - Edit any patron record and go to Additional attributes and identifiers
      - Add a value "altid123" to "Alternate ID"
      - Save
   - Use any SIP2 client to search for the patron using this attribute value. e.g.,
     `perl misc/sip_cli_emulator.pl -su term1 -sp term1 -l CPL --host localhost --patron altid123 -m patron_information`
   - Verify that the patron is NOT found with this message:
     'AFInvalid cardnumber'
     e.g.:
     READ: 64YYYY          00120260304    104611000000000000000000000000AOCPL|AAaltid123|AE|BLN|AFInvalid cardnumber|

2. Apply the patch.

3. Run the tests:
   prove t/db_dependent/Koha/Patrons.t
   - Verify that all tests pass, including the new cases for unique attribute lookup.

4. Test with patch applied:
   - Use any SIP2 client to search for the patron using this attribute value. e.g.,
     `perl misc/sip_cli_emulator.pl -su term1 -sp term1 -l CPL --host localhost --patron altid123 -m patron_information`
   - Verify that the patron is found with this message:
     'AFGreetings from Koha.'
     e.g.:
     READ: 64              00120260304    104328000000000000000000000000AOCPL|AA23529001000463|AEEdna Acosta|BLY|BHUSD|BV0|CC5|BD7896 Library Rd. Portland, OR 44240|BF(212) 555-1212|PB19800424|PCPT|PIY|AFGreetings from Koha. |

5. Test non-unique attribute:
   - Go to Administration -> Patron attribute types
   - Edit "Alternate ID" attribute type
      - Unique identifier checkbox NOT selected
      - Save
   - Use any SIP2 client to search for the patron using this attribute value. e.g.,
     `perl misc/sip_cli_emulator.pl -su term1 -sp term1 -l CPL --host localhost --patron altid123 -m patron_information`
   - Verify that the patron is NOT found with this message:
     'AFInvalid cardnumber'
     e.g.:
     READ: 64YYYY          00120260304    104611000000000000000000000000AOCPL|AAaltid123|AE|BLN|AFInvalid cardnumber|

6. Sign-off

Signed-off-by: Syed Faheemuddin <faheem@nexuslib.com>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
2026-04-09 08:27:37 -06:00
..
Acquisition Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Auth Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
AuthoritiesMarc
…
Authority Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Biblio Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
Budgets
…
Circulation Bug 40136: (follow-up) Fix IsItemIssued.t mock_userenv 2026-03-25 12:30:38 +01:00
CourseReserves Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Creators Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Exporter Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Holds Bug 40058: Adjust existing tests 2025-08-14 16:06:00 -06:00
HoldsQueue Bug 41959: Unit tests 2026-03-24 15:35:34 +01:00
Items Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Koha Bug 41383: SIP2 server does not search patrons by unique patron attributes (alternate IDs unusable in SIP2) 2026-04-09 08:27:37 -06:00
LDAP
…
Labels Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
Letters Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Members Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
OAI Bug 40962: Apply ViewPolicy filter consistently in OAI Server test setup 2026-03-23 07:54:05 +01:00
Patron Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Record Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Reports Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Reserves Bug 3492: Modernize hold fee system and migrate to circulation rules 2026-02-09 12:57:56 -07:00
SIP Bug 41369: SIP payments have no branchcode 2025-12-17 13:24:30 -07:00
Search Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
Serials Bug 37796: (QA follow-up) nextpublisheddate in t/db../GetNextSeq.t 2025-12-17 13:24:24 -07:00
Template/Plugin Bug 39781: (RM follow-up) Fix wrong mock_userenv key in test 2026-03-26 09:32:23 +01:00
Utils Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
api/v1 Bug 40504: (QA follow-up) Tidy 2026-03-26 14:21:25 +01:00
cronjobs Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
data Bug 39345: (QA follow-up): Add exception handling for unsupported counter release 2025-09-05 15:10:31 -06:00
misc/translator Bug 40444: Add a test to ensure all Perl test files use Test::NoWarnings 2025-07-28 16:26:36 -06:00
mojo Bug 39055: Add change to Koha::App::Plugin::CSRF and fix unit test 2026-03-19 10:51:41 +00:00
selenium Bug 24949: Provide password visibility toggle / icon to unmask password on staff login screen 2026-02-27 11:38:42 -07:00
www Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
00-strict.t
…
Accounts.t Bug 35612: (QA follow-up) Add test for undefined LostChargesControl preference 2026-02-27 11:38:54 -07:00
Acquisition.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Amazon.t
…
ArticleRequests.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
AudioAlerts.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Auth.t Bug 40286: Make C4::Auth::checkpw_internal use Koha::Patrons->find_by_identifier 2026-03-23 08:01:01 +01:00
AuthUtils.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Auth_with_cas.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Auth_with_ldap.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Auth_with_shibboleth.t Bug 41076: Adjust our perl tidiness for v20250105 2026-02-05 09:03:51 -07:00
AuthorisedValues.t Bug 40444: Add a test to ensure all Perl test files use Test::NoWarnings 2025-07-28 16:26:36 -06:00
AuthoritiesMarc.t
…
AuthoritiesMarc_GetTagsLabels.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Barcodes.t Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
Barcodes_ValueBuilder.t Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
Biblio.t Bug 40135: Include MARC field changes in CATALOGUING diff logs 2026-03-23 10:41:38 +01:00
Biblio_holdsqueue.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Breeding.t Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
Breeding_Auth.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Budgets.t Bug 40371: Remove warnings from Budgets.t output 2025-07-23 16:36:30 -06:00
Cache.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Calendar.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Charset.t
…
Circulation.t Bug 23415: (follow-up) Rename sysprefs and add self-checkout control 2026-03-22 23:52:06 +01:00
ClassSources.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Clubs.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Context.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Contract.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
CourseReserves.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
DecreaseLoanHighHolds.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Filter_MARC_ViewPolicy.t Bug 41076: Adjust our perl tidiness for v20250105 2026-02-05 09:03:51 -07:00
Fines.t
…
FrameworkPlugin.t Bug 38365: Require a non-empty nonce in FrameworkPlugin.t 2026-03-17 09:38:49 +01:00
Heading.t Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
Heading_MARC21.t Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
Hold.t Bug 41076: Adjust our perl tidiness for v20250105 2026-02-05 09:03:51 -07:00
Holds.t Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
HoldsQueue.t Bug 40680: Fix C4::Calendar imports 2025-12-01 08:34:00 -07:00
Holidays.t Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
ILSDI_Services.t Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
ImportBatch.t Bug 42098: (follow-up) Enable plugin in ImportBatch.t test 2026-03-20 07:51:01 +00:00
ImportExportFramework.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Installer.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Items.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Koha.t Bug 40277: Add a test 2025-07-07 10:20:27 -06:00
Koha_Database.t
…
Koha_Elasticsearch.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Koha_ExternalContent_OverDrive.t
…
Koha_MetadataRecord_Authority.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Koha_Misc_Files.t
…
Languages.t
…
Letters.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
LibraryGroups.t
…
Linker_Default.t Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
Linker_FirstMatch.t Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
Log.t Bug 20956: BorrowersLog is not logging permission changes 2026-03-23 10:41:51 +01:00
MarcModificationTemplates.t Bug 32950: Remove unecessary DELETE 2025-10-06 09:15:25 -06:00
Matcher.t Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
Members.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Message.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
MungeMarcPrice.t
…
Output.t Bug 38936: Use https in license 2025-10-01 08:32:49 -06:00
Overdues.t Bug 35612: Add tests for branch context recording in OVERDUE fees 2026-02-27 11:38:50 -07:00
Passwordrecovery.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
PatronLists.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Patroncards.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Patrons.t Bug 41076: Adjust our perl tidiness for v20250105 2026-02-05 09:03:51 -07:00
Prices.t
…
Realtime_holdsqueue.t Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
Record.t
…
RecordProcessor_EmbedSeeFromHeadings.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Reports.t
…
Reserves.t Bug 41267: Add fill_other_biblio_holds_policy circulation rule 2026-04-09 08:27:26 -06:00
RotatingCollections.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Search.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Search_FacetSorting.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Serials.t Bug 37796: Pass correct publication date when generating the next serial form the serial collection page 2025-12-17 13:24:17 -07:00
Serials_2.t
…
Service.t
…
ShelfBrowser.t
…
Sitemapper.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
SocialData.t Bug 41076: Adjust our perl tidiness for v20250105 2026-02-05 09:03:51 -07:00
StockRotationItems.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
StockRotationRotas.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
StockRotationStages.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
SuggestionEngine_ExplodedTerms.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Suggestions.t Bug 39725: Remove GetSuggestionByStatus from C4/Suggestions.pm 2026-03-05 08:34:05 -07:00
TablesSettings.t Bug 41042: default_save_state is enabled by default 2025-10-23 11:33:32 -06:00
Tags.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
Templates.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
TestBuilder.t Bug 41076: Adjust our perl tidiness for v20250105 2026-02-05 09:03:51 -07:00
Upload.t
…
UsageStats.t Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
Virtualshelves.t Bug 18148: Add unit tests 2025-11-05 07:12:35 -07:00
XISBN.t
…
XSLT.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
check_kohastructure.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
check_sysprefs.t Bug 41834: Set systempreferences's options, explanation and type to NULL 2026-03-20 07:57:11 +00:00
db_structure.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
rollingloans.t Bug 40680: Fix t tests 2025-12-01 08:34:01 -07:00
sysprefs.t Bug 40163: (follow-up) Fix wrong GNU links and update test 2025-09-24 09:25:04 -06:00
yaml.t
…
zebra_config.pl
…