In Koha-Suomi libraries we use cardnumbers as userids. This is done with a database trigger which sets cardnumber as userid when user is saved to database. Mostly this works well, but occasionally we have faced problems with patrons seemingly having no subpermissions. Patrons subpermissions are fetched from database with method get_user_subpermissions based on their userid. So even if they are saved in database they are not displayed in Koha's UI if userid is missing. While this isn't a major problem it can be confusing for staff members if they have accidentally created a patron without cardnumber/userid and then try to save permissions for them which seemingly are not saved. Also full permissions for patrons are still displayed normally so for consistency it would be logical to use borrowernumber to fetch subpermissions instead of userid. Method get_user_subpermissions is used in two places, member-flags.pl to fetch subpermissions and about.pl to check that SCO patron doesn't have extra permissions. As far as I can see changing it to use patrons borrowernumber shouldn't have any dramatic side effects.
Created attachment 190103 [details] [review] Bug 41269: Use borrowernumber to fetch patrons subpermissions Koha currently fetches patrons subpermissions with userid in method get_user_subpermissions. If for some reason patron doesn't have userid their subpermissions aren't displayed on Koha UI. Althougt this shouldn't really happen (unless there are some local use cases where userid can be empty), this method is only used to either display patrons subpermissions on page Set permissions or to check if SCO user only has SCO permissions. In both of these cases we can use patrons borrowernumber instead of userid since they check existing patrons permissions, not the ones for patron who is about to log into Koha. To test: 1. Apply this patch. 2. Enable sysprefs WebBasedSelfCheck and AutoSelfCheckAllowed and add some patrons userid to AutoSelfCheckID. 3. Make sure patron whose userid you used doesn't have permissions to use SCO and has other subpermissions instead. 4. Navigate to page About Koha>System infromation. => Confirm that warnings starting with "The patron used for the self-checkout..." are displayed. 5. Check patrons permissions. => Confirm that patrons subpermissions are displayed normally. Sponsored-by: Koha-Suomi Oy
Created attachment 190875 [details] [review] Bug 41269: Use borrowernumber to fetch patrons subpermissions Koha currently fetches patrons subpermissions with userid in method get_user_subpermissions. If for some reason patron doesn't have userid their subpermissions aren't displayed on Koha UI. Althougt this shouldn't really happen (unless there are some local use cases where userid can be empty), this method is only used to either display patrons subpermissions on page Set permissions or to check if SCO user only has SCO permissions. In both of these cases we can use patrons borrowernumber instead of userid since they check existing patrons permissions, not the ones for patron who is about to log into Koha. To test: 1. Apply this patch. 2. Enable sysprefs WebBasedSelfCheck and AutoSelfCheckAllowed and add some patrons userid to AutoSelfCheckID. 3. Make sure patron whose userid you used doesn't have permissions to use SCO and has other subpermissions instead. 4. Navigate to page About Koha>System infromation. => Confirm that warnings starting with "The patron used for the self-checkout..." are displayed. 5. Check patrons permissions. => Confirm that patrons subpermissions are displayed normally. Sponsored-by: Koha-Suomi Oy Signed-off-by: David Nind <david@davidnind.com>