Jonathan Druart
95d0a17e8b
This patchset adds a new feature that will allow libraries inside a single Koha installation to restrict access to information of patrons that The group of libraries feature is introduced by bug 15707, see this bug for more information. Let's imagine that 2 groups G1 and G2 are defined and that they include 2 libraries each G1a, G1b and G2c, G2d: logged in users attached to G1a will only see patron's information from G1a and G1b. To add more flexibility, a new user permission named 'view_borrower_infos_from_any_libraries' will drive this behavior. If set, the patron will be able to see patron's information of any libraries. If the restriction is set, the logged in user will not be able to search, show, edit, delete patron's information of patrons attached to groups of libraries outside his own group. In situations we need to refer to a patron, for holds and checkouts for instance, and his information cannot be viewed, a text "A patron from library G1A" will be displayed. Considered unecessary or outside the scope of this bug report: * The report module is not affected by this feature for obvious reasons * The firstname and surname of guarantors, basket (acq) managers, patrons linked to orders are still displayed. * Log viewer: Can only be staff * patron list: you cannot add patrons from another group of librairies, but can see/delete from list (too much rewrite, or we can test for patron one by one?). * "Patron card creator" tool is not impacted by this feature. * Upload patron images is not impacted by this patch, should it be? * Tools: - Upload patrons - Clean borrowers tool (This can can done easily updating Koha::Patrons->search with Koha::Patrons->search_limited in search_upcoming_membership_expires and search_patrons_to_anonymise but we will need to move GetBorrowersToExpunge to Koha::Patrons first) We can discuss these different points but will be other bug reports not to add more complexity to this first patchset. Test plan: You will find a test plan in the following commit messages. Start by creating different group of libraries and patrons with and without the new permission. Open different browser sessions to ease the tests. Note that all patches have to be applied to test the different test plans. Technical notes: For QAers (and others) a techical note will be added to the commit messages of this patchset. I would recommend you to read them one by one to understand the different steps of this development. + Special attention should be payed to the REST api changes + Should we restrict the logged in user to libraries from his group when he wants to set his library (Home › Circulation › Set library)? Signed-off-by: Signed-off-by: Jon McGowan <jon.mcgowan@ptfs-europe.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
115 lines
8.8 KiB
PHP
115 lines
8.8 KiB
PHP
[%- BLOCK main_permissions -%]
|
|
[% SWITCH name %]
|
|
[%- CASE 'superlibrarian' -%]<span>Access to all librarian functions</span>
|
|
[%- CASE 'circulate' -%]<span>Check out and check in items</span>
|
|
[%- CASE 'catalogue' -%]<span><b>Required for staff login.</b> Staff access, allows viewing of catalogue in staff client.</span>
|
|
[%- CASE 'parameters' -%]<span>Manage Koha system settings (Administration panel)</span>
|
|
[%- CASE 'borrowers' -%]<span>Add, modify and view patron information</span>
|
|
[%- CASE 'permissions' -%]<span>Set user permissions</span>
|
|
[%- CASE 'reserveforothers' -%]<span>Place and modify holds for patrons</span>
|
|
[%- CASE 'editcatalogue' -%]<span>Edit catalog (Modify bibliographic/holdings data)</span>
|
|
[%- CASE 'updatecharges' -%]<span>Manage patrons fines and fees</span>
|
|
[%- CASE 'acquisition' -%]<span>Acquisition and/or suggestion management</span>
|
|
[%- CASE 'management' -%]<span>Set library management parameters (deprecated)</span>
|
|
[%- CASE 'tools' -%]<span>Use all tools (expand for granular tools permissions)</span>
|
|
[%- CASE 'editauthorities' -%]<span>Edit authorities</span>
|
|
[%- CASE 'serials' -%]<span>Manage serial subscriptions</span>
|
|
[%- CASE 'reports' -%]<span>Allow access to the reports module</span>
|
|
[%- CASE 'staffaccess' -%]<span>Allow staff members to modify permissions for other staff members</span>
|
|
[%- CASE 'coursereserves' -%]<span>Course reserves</span>
|
|
[%- CASE 'plugins' -%]<span>Koha plugins</span>
|
|
[%- CASE 'lists' -%]<span>Lists</span>
|
|
[%- CASE 'clubs' -%]<span>Patron clubs</span>
|
|
[%- CASE 'ill' -%]<span>Create and modify Interlibrary loan requests</span>
|
|
[%- END -%]
|
|
[%- END -%]
|
|
|
|
[%- BLOCK sub_permissions -%]
|
|
[% SWITCH name %]
|
|
[%- CASE 'circulate_remaining_permissions' -%]<span>Remaining circulation permissions</span>
|
|
[%- CASE 'force_checkout' -%]<span>Force checkout if a limitation exists</span>
|
|
[%- CASE 'manage_restrictions' -%]<span>Manage restrictions for accounts</span>
|
|
[%- CASE 'overdues_report' -%]<span>Execute overdue items report</span>
|
|
[%- CASE 'override_renewals' -%]<span>Override blocked renewals</span>
|
|
[%- CASE 'self_checkout' -%]<span>Perform self checkout at the OPAC. It should be used for the patron matching the AutoSelfCheckID</span>
|
|
[%- CASE 'manage_circ_rules' -%]<span>manage circulation rules</span>
|
|
[%- CASE 'parameters_remaining_permissions' -%]<span>Remaining system parameters permissions</span>
|
|
[%- CASE 'edit_borrowers' -%]<span>Add, modify and view patron information</span>
|
|
[%- CASE 'view_borrower_infos_from_any_libraries' -%]<span>View patron infos from any libraries. If not set the logged in user could only access patron infos from its own library or group of libraries.</span>
|
|
[%- CASE 'modify_holds_priority' -%]<span>Modify holds priority</span>
|
|
[%- CASE 'place_holds' -%]<span>Place holds for patrons</span>
|
|
[%- CASE 'delete_all_items' -%]<span>Delete all items at once</span>
|
|
[%- CASE 'edit_catalogue' -%]<span>Edit catalog (Modify bibliographic/holdings data)</span>
|
|
[%- CASE 'edit_items' -%]<span>Edit items</span>
|
|
[%- CASE 'edit_items_restricted' -%]<span>Limit item modification to subfields defined in the SubfieldsToAllowForRestrictedEditing preference (please note that edit_item is still required)</span>
|
|
[%- CASE 'fast_cataloging' -%]<span>Fast cataloging</span>
|
|
[%- CASE 'remaining_permissions' -%]<span>Remaining permissions for managing fines and fees</span>
|
|
[%- CASE 'writeoff' -%]<span>Write off fines and fees</span>
|
|
[%- CASE 'budget_add_del' -%]<span>Add and delete budgets (but can't modify budgets)</span>
|
|
[%- CASE 'budget_manage' -%]<span>Manage budgets</span>
|
|
[%- CASE 'budget_manage_all' -%]<span>Manage all budgets</span>
|
|
[%- CASE 'budget_modify' -%]<span>Modify budget (can't create lines, but can modify existing ones)</span>
|
|
[%- CASE 'contracts_manage' -%]<span>Manage contracts</span>
|
|
[%- CASE 'group_manage' -%]<span>Manage orders & basketgroups</span>
|
|
[%- CASE 'order_manage' -%]<span>Manage orders & basket</span>
|
|
[%- CASE 'order_manage_all' -%]<span>Manage all orders and baskets, regardless of restrictions on them</span>
|
|
[%- CASE 'order_receive' -%]<span>Manage orders & basket</span>
|
|
[%- CASE 'period_manage' -%]<span>Manage periods</span>
|
|
[%- CASE 'planning_manage' -%]<span>Manage budget plannings</span>
|
|
[%- CASE 'vendors_manage' -%]<span>Manage vendors</span>
|
|
[%- CASE 'batch_upload_patron_images' -%]<span>Upload patron images in a batch or one at a time</span>
|
|
[%- CASE 'delete_anonymize_patrons' -%]<span>Delete old borrowers and anonymize circulation history (deletes borrower reading history)</span>
|
|
[%- CASE 'edit_calendar' -%]<span>Define days when the library is closed</span>
|
|
[%- CASE 'edit_news' -%]<span>Write news for the OPAC and staff interfaces</span>
|
|
[%- CASE 'edit_notice_status_triggers' -%]<span>Set notice/status triggers for overdue items</span>
|
|
[%- CASE 'edit_notices' -%]<span>Define notices</span>
|
|
[%- CASE 'edit_patrons' -%]<span>Perform batch modification of patrons</span>
|
|
[%- CASE 'edit_quotes' -%]<span>Edit quotes for quote-of-the-day feature</span>
|
|
[%- CASE 'export_catalog' -%]<span>Export bibliographic and holdings data</span>
|
|
[%- CASE 'import_patrons' -%]<span>Import patron data</span>
|
|
[%- CASE 'inventory' -%]<span>Perform inventory of your catalog</span>
|
|
[%- CASE 'items_batchdel' -%]<span>Perform batch deletion of items</span>
|
|
[%- CASE 'items_batchmod' -%]<span>Perform batch modification of items</span>
|
|
[%- CASE 'items_batchmod_restricted' -%]<span>Limit batch item modification to subfields defined in the SubfieldsToAllowForRestrictedBatchmod preference (please note that items_batchmod is still required)</span>
|
|
[%- CASE 'label_creator' -%]<span>Create printable labels and barcodes from catalog and patron data</span>
|
|
[%- CASE 'manage_csv_profiles' -%]<span>Manage CSV export profiles</span>
|
|
[%- CASE 'manage_patron_lists' -%]<span>Add, edit and delete patron lists and their contents</span>
|
|
[%- CASE 'manage_staged_marc' -%]<span>Managed staged MARC records, including completing and reversing imports</span>
|
|
[%- CASE 'marc_modification_templates' -%]<span>Manage marc modification templates</span>
|
|
[%- CASE 'moderate_comments' -%]<span>Moderate patron comments</span>
|
|
[%- CASE 'moderate_tags' -%]<span>Moderate patron tags</span>
|
|
[%- CASE 'records_batchdel' -%]<span>Perform batch deletion of records (bibliographic or authority)</span>
|
|
[%- CASE 'records_batchmod' -%]<span>Perform batch modification of records (biblios or authorities)</span>
|
|
[%- CASE 'rotating_collections' -%]<span>Manage rotating collections</span>
|
|
[%- CASE 'schedule_tasks' -%]<span>Schedule tasks to run</span>
|
|
[%- CASE 'stage_marc_import' -%]<span>Stage MARC records into the reservoir</span>
|
|
[%- CASE 'upload_local_cover_images' -%]<span>Upload local cover images</span>
|
|
[%- CASE 'view_system_logs' -%]<span>Browse the system logs</span>
|
|
[%- CASE 'check_expiration' -%]<span>Check the expiration of a serial</span>
|
|
[%- CASE 'claim_serials' -%]<span>Claim missing serials</span>
|
|
[%- CASE 'create_subscription' -%]<span>Create a new subscription</span>
|
|
[%- CASE 'delete_subscription' -%]<span>Delete an existing subscription</span>
|
|
[%- CASE 'edit_subscription' -%]<span>Edit an existing subscription</span>
|
|
[%- CASE 'receive_serials' -%]<span>Serials receiving</span>
|
|
[%- CASE 'renew_subscription' -%]<span>Renew a subscription</span>
|
|
[%- CASE 'routing' -%]<span>Routing</span>
|
|
[%- CASE 'superserials' -%]<span>Manage subscriptions from any branch (only applies when IndependentBranches is used)</span>
|
|
[%- CASE 'delete_reports' -%]<span>Delete SQL reports</span>
|
|
[%- CASE 'create_reports' -%]<span>Create SQL reports</span>
|
|
[%- CASE 'execute_reports' -%]<span>Execute SQL reports</span>
|
|
[%- CASE 'add_reserves' -%]<span>Add course reserves</span>
|
|
[%- CASE 'delete_reserves' -%]<span>Remove course reserves</span>
|
|
[%- CASE 'manage_courses' -%]<span>Add, edit and delete courses</span>
|
|
[%- CASE 'configure' -%]<span>Configure plugins</span>
|
|
[%- CASE 'manage' -%]<span>Manage plugins ( install / uninstall )</span>
|
|
[%- CASE 'report' -%]<span>Use report plugins</span>
|
|
[%- CASE 'tool' -%]<span>Use tool plugins</span>
|
|
[%- CASE 'delete_public_lists' -%]<span>Delete public lists</span>
|
|
[%- CASE 'upload_general_files' -%]<span>Upload any file</span>
|
|
[%- CASE 'upload_manage' -%]<span>Manage uploaded files (<i>Useless without upload_general_files</i>)</span>
|
|
[%- CASE 'edit_clubs' -%]<span>Create and edit clubs</span>
|
|
[%- CASE 'edit_templates' -%]<span>Create and edit club templates</span>
|
|
[%- CASE 'enroll' -%]<span>Enroll patrons in clubs</span>
|
|
[%- CASE 'edi_manage' -%]<span>Manage EDIFACT transmissions</span>
|
|
[%- END -%]
|
|
[%- END -%]
|