4 commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
Jonathan Druart
|
dcd1f5d48c |
Bug 13618: Add html filters to all the variables
Here we go, next step then. As we did not fix the performance issue when autofiltering the variables (see bug 20975), the only solution we have is to add the filters explicitely. This patch has been autogenerated (using add_html_filters.pl, see next pathces) and add the html filter to all the variables displayed in the template. Exceptions are made (using the new 'raw' TT filter) to the variable we already listed in the previous versions of this patch. To test: - Use t/db_dependent/Koha/Patrons.t to populate your DB with autogenerated data which contain <script> tags - Remove them from borrower_debarments.comments (there are allowed here) update borrower_debarments set comment="html tags possible here"; - From the interface hit page and try to catch alert box. If you find one it means you find a possible XSS. To know where it comes from: * note the exact URL where you found it * note the alert box content * Dump your DB and search for the string in the dump to identify its location (for instance table.field) Next: * Ideally we would like to use the raw filter when it is not necessary to HTML escape the variables (in big loop for instance) * Provide a QA script to catch missing filters (we want html, uri, url or raw, certainly others that I am forgetting now) * Replace the html filters with uri when needed (!) Signed-off-by: Owen Leonard <oleonard@myacpl.org> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> |
||
Mark Tompsett
|
cb28aa454a |
Bug 5025: discrepancy between opac doc-head-open.inc and staff doc-head-open.inc
http://library.debiankoha.ca/cgi-bin/koha/errors/400.pl http://library.debiankoha.ca/cgi-bin/koha/errors/401.pl http://library.debiankoha.ca/cgi-bin/koha/errors/402.pl http://library.debiankoha.ca/cgi-bin/koha/errors/403.pl http://library.debiankoha.ca/cgi-bin/koha/errors/404.pl http://library.debiankoha.ca/cgi-bin/koha/errors/500.pl http://library.debiankoha.ca/cgi-bin/koha/ilsdi.pl Set OpacMaintenance to "Show" in the Staff client system preferences. http://library.debiankoha.ca/cgi-bin/koha/maintenance.pl Set OpacMaintenance to "Don't show" in the Staff client system preferences. http://library.debiankoha.ca/cgi-bin/koha/opac-ISBDdetail.pl?biblionumber=5390 http://library.debiankoha.ca/cgi-bin/koha/opac-MARCdetail.pl?biblionumber=5390 Log into OPAC Client http://library.debiankoha.ca/cgi-bin/koha/opac-account.pl http://library.debiankoha.ca/cgi-bin/koha/opac-search.pl -- This is actually the advanced search. FIXME: Don't know how to trigger opac-alert-subscribe.tt FIXME: Don't know how to trigger opac-auth-MARCdetail.tt FIXME: Don't know how to trigger opac-auth-detail.tt FIXME: Don't know how to trigger opac-auth.tt Click 'Authority search' in OPAC Click 'Submit' Search for something in the catalog Click 'Select all' Change 'With selected titles:' drop down to 'cart' View the cart. Click 'Send' Click 'Cancel' Click 'Download' Click 'Cancel' Close cart window Search for something in the catalog Select 'Select all' Change 'With selected titles:' drop down to '[ New List ]' Save the list Click 'Lists' Click the list you saved Click 'Download list' Click 'Cancel' Click 'Send list' Click 'Cancel' Copy the URL from download list and remove the '&context=modal' Click 'Cancel' http://library.debiankoha.ca/cgi-bin/koha/opac-blocked.pl http://library.debiankoha.ca/cgi-bin/koha/opac-browser.pl FIXME: Don't know how to trigger opac-course-details.tt http://library.debiankoha.ca/cgi-bin/koha/opac-course-reserves.pl http://library.debiankoha.ca/cgi-bin/koha/opac-detail.pl?biblionumber=5336 FIXME: Don't know how to trigger opac-full-serial-issues.tt http://library.debiankoha.ca/cgi-bin/koha/opac-imageviewer.pl http://library.debiankoha.ca/cgi-bin/koha/opac-main.pl Click on the user name in the top area. Click the 'your personal details' tab. Change the birth date. Click 'Submit' http://library.debiankoha.ca/cgi-bin/koha/opac-messaging.pl http://library.debiankoha.ca/cgi-bin/koha/opac-overdrive-search.pl Click on the user name in the top area. Click the 'change your password' tab. Set OPACPrivacy to "Allow" in the Staff client system preferences. Refresh OPAC page click on the user name in the top area. Click the 'your privacy' tab. Click the 'your reading history' tab. Change the PatronSelfRegistration to "Allow" in the Staff client system preferences. Change the PatronSelfRegistrationCategory to "PT" or some other valid patron category code. Change the PatronSelfRegistrationAdditionalInstructions to something. Refresh OPAC page Log out Click the 'Register Here' link. Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> Tested most pages, inspected all of them. No errors Signed-off-by: Jonathan Druart <jonathan.druart@koha-community.org> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> |
||
Marc Véron
|
6246f2c700 |
Bug 12162 - Add class="branchcode" to body tag to make OPAC CSS-styleable per branch
This patch adds a branch sepecific class to all OPAC pages. Example: If not logged in, opac-main.pl displays: <body ID="opac-main" class="branch-default" > If logged in at branch FFL, it displays: <body ID="opac-main" class="branch-FFL" > If you log in, opac-user.pl should display <body ID="opac-user" class="branch-FFL scrollto" > To test: 1) Apply patch. 2) Add to syspref OPACUserCSS something highly visible, e.g. for branch FFL: .branch-FFL { background-color: yellow; border: 10px solid red; } 3) Go to OPAC and login in with a user with home branch FFL 4) Verify that colors change as appropriate. 5) Log out. Verify that colors display as before or as defined in class branch-default in OPACUserCSS 6) Display patch in patch diff view, verify that ids and classes in body tag are consistent with params bodyid and bodyclass in INCLUDE line 7) Search for regressions Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com> |
||
eb92d94be1 |
Bug 10309 - New OPAC theme based on Bootstrap
The goal of this theme is to provide a fully-responsive OPAC which offers a high level of functionality across multiple devices with varied viewport sizes. Its style is based on the CCSR theme, with elements of the Bootstrap framework providing default styling of buttons, menus, modals, etc. The Bootstrap grid is used everywhere, but Bootstrap's default responsive breakpoints have been expanded to allow for better flexibility for our needs. All non-translation-depended files are in the root directory of this new theme: css, images, itemtypeimg, js, less, and lib. Languages.pm has been modified to ignore the new directories when parsing the theme language directories. This theme introduces the use of LESS (http://lesscss.org/) to build CSS. Three LESS files can be found in the "less" directory: mixins.less, opac.less, and responsive.less. These three files are compiled into one CSS file for production: opac.css. "Base" theme styles are found in opac.less. A few "mixins" (http://lesscss.org/#-mixins) are found in mixins.less. Any CSS which is conditional on specific media queries is found in responsive.less. At the template level some general sturctural changes have been made. For the most part JavaScript is now at the end of each template as is recommended for performance reasons. JavaScript formerly in doc-head-close.inc is now in opac-bottom.inc. In order to be able to maintain this structure and accommodate page-specific scripts at the same time the use of BLOCK and PROCESS are added. By default opac-bottom.inc will PROCESS a "jsinclude" block: [% PROCESS jsinclude %] Each page template in the theme must contain this block, even if it is empty: [% BLOCK jsinclude %][% END %] Pages which require that page-specific JavaScript be inserted can add it to the jsinclude block and it will appear correctly at the bottom of the rendered page. The same is true for page-specific CSS. Each page contains a cssinclude block: [% BLOCK cssinclude %][% END %] ...which is processed in doc-head-close.inc: [% PROCESS cssinclude %] Using these methods helps us maintain a strict separation of CSS links and blocks (at the top of each page) and JavaScript (at the bottom). A few exceptions are made for some JavaScript which must be processed sooner: respond.js (https://github.com/scottjehl/Respond, conditionally applied to Internet Explorer versions < 9 to allow for layout responsiveness), the _() function required for JS translatability, and Modernizr (http://modernizr.com/, a script which detects browser features and allows us to conditionally load JavaScript based on available features--or lack thereof). Another new JavaScript dependency in this theme is enquire.js (http://wicky.nillia.ms/enquire.js/), which lets us trigger JavaScript events based on viewport size. I have made an effort to re-indent the templates in a sane way, eliminating trailing spaces and tabs. However, I have not wrapped lines at a specific line length. In order to improve template legibility I have also tried to insert comments indicating the origin of closing tags like <div> or template directives like [% END %]: </div> <!-- / .container-fluid --> [% END # / IF ( OpacBrowseResults && busc ) %] TESTING Proper testing of this theme is no easy task: Every template has been touched. Each page should work reasonable well at a variety of screen dimensions. Pages should be tested under many conditions which are controlled by toggling OPAC system preferences on and off. A variety of devices, platforms, and browsers should be tested. Signed-off-by: Galen Charlton <gmc@esilibrary.com> |