From: Till K. <kin...@gm...> - 2011-03-31 21:44:14
|
Am 31.03.2011 22:08, schrieb Cornelison, Lee - 1150 - MITLL: > In our Sirsi catalog, we assign restriction levels to our bib records > [Top Secret; Secret; Unclassified, etc. -- or NONE] and then limit > search results according to matching clearance values in our GUEST, or > authenticated patrons’ record settings. We have a similar scenario: Because of licence restrictions, access to some records in our index are restricted to authenticated users. > 1. If I create a new faceting of the restriction values that are > stored in my bib’s MARC 355 tags, could I leverage that facet into > a mechanism for determining access? Not directly. But indexing theses restriction values is the way to go. You can then filter out records from queries with filter queries in Solr (the search engine behind VuFind). That's exactly what facet browsing in VuFind does... We use that to restrict access to parts of the index as well. At the moment, there is just no "standard way" to sent such a filter built from input coming from an external source (e.g. your LDAP or a database in our case) with every query. Do you have some PHP coding skills? If so, I think you can do/hack it quite easily. Read the rights from the LDAP (perhaps by extending the authentication class), map them to a filter, add the filter obligatory to each search request (perhaps in VuFind's Solr interface class in web/sys/Solr.php in method search, that's where I did it, or nowadays the Solr SearchObject might be a more suitable place...). A more generic solution for VuFind might be nice, if there is more request for such a feature. Perhaps we can set up a specification... I think it must be open to various kinds of sources for the "rights input", must have a flexible way to map/calculate filters based on that input and finally must inject that into the Solr search request... But beyond "access rights restrictions" there might be more use cases for a mechanism like that? Till -- http://twitter.com/tillk |