Commit graph

687 commits

Author SHA1 Message Date
Galen Charlton
cafaa26b45 granular permissions - created DB tables
First big commit in a project to add more granular
staff user permissions to Koha.

* Created two new database tables

permissions:
  stores a list of defined permissions; each
  permission is to be interpreted as a child
  of a top-level permission defined in the
  existing user flags.  For example, Tools (bit 13)
  now has a separate sub-permission for each
  individual tool.

  The columns are
    module_bit  = FK referencing userflags.bit
    code        = code, e.g., import_patrons
    description = e.g., "Import patron data"

user_permissions:
  stores a list of the specific permissions that
  a staff user actually has.   For example, if
  staff user 123 has only the 'import_patrons' subpermission
  of 'Tools' (module_bit = 13), that would be represented
  by having (123, 13, 'import_patrons' in user_permissions.

  user_permissions and borrowers.flags are now interpreted
  as follows (assuming the CheckSpecificUserPermissions syspref
  is ON):
    * If the appropriate bit (e.g., bit 13 for Tools) is set
      in borrowers.flags, the staff user can access all
      Tools functions.  There should be no rows in user_permissions
      for that staff user and userflag bit combination.
    * If the bit is not set in borrowers.flags, but one or
      more rows are present in user_permissions for that
      staff user and bit combination, the staff user can
      access the specified sub-functions.
    * If the bit is not set in borrower.flags and there are
      no rows in user_permissions for that staff user and
      bit combination, the user cannot access any of the functions.

  Note that this means that if a staff user can access all
  functions for a module (because the bit is set in borrowers.flags),
  the user will automatically be able access any new subfunctions
  added to permissions by a database update.

  The columns are:
    borrowernumber = FK referencing borrowers.borrowernumber
    module_bit, code = FK referencing permissions

* Added a new system preference, CheckSpecificUserPermissions

If this system preference is ON, staff users can be assigned
specific permissions which will be respected during
authorization checks.  If this system preference is OFF, the
current userflags semantics will continue to apply.

* Defined sub-permissions for Tools.  The list of specific
  tools permissions is now:

  edit_news          Write news for the OPAC and staff interfaces
  label_creator      Create printable labels and barcodes from catalog and patron data
  edit_calendar      Define days when the library is closed
  moderate_comments  Moderate patron comments
  edit_notices       Define notices
  edit_notice_status_triggers     Set notice/status triggers for overdue items
  view_system_logs   Browse the system logs
  inventory          Perform inventory (stocktaking) of your catalogue
  stage_marc_import  Stage MARC records into the reservoir
  manage_staged_marc Manage staged MARC records, including completing and reversing imports
  export_catalog     Export bibliographic and holdings data
  import_patrons     Import patron data
  delete_anonymize_patrons    Delete old borrowers and anonymize circulation history (deletes borrower reading history)
  batch_upload_patron_images  Upload patron images in batch or one at a time
  schedule_tasks     Schedule tasks to run

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-04-10 15:53:08 -05:00
Galen Charlton
79fd489c19 fixed create table statement for patroncards
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-18 17:00:42 -05:00
Joshua Ferraro
5d4b0048ac partial fix for bug 1873: virtualshelfcontents dateadded column empty
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-17 23:40:40 -05:00
Chris Nighswonger
d9da8093bb Eighth installment Patron card generation feature
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-17 20:43:11 -05:00
Chris Nighswonger
d938a342ad Removing second instance of deleteditems.copynumber
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-17 10:22:53 -05:00
Chris Nighswonger
122b26219e Fix for Bug 1927
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-17 10:12:30 -05:00
Chris Nighswonger
015338b998 Correcting column order in items/deleteditems tables
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-15 08:36:35 -05:00
Chris Nighswonger
cdeada443c Adding another missing column to deleted items table.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-15 08:36:34 -05:00
Chris Nighswonger
471dbfe7fe Fix for Bug 1927
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-15 08:36:32 -05:00
Galen Charlton
9222f7a6ca created old_issues and old_reserves tables
The new tables have the same structure and constraints
as the tables they archive with the following exceptions:

* borrowernumber and biblionumber in old_reserves can be
  NULL
* the FK constraints (e.g., for itemnumber) on old_reserves
  set the child column to NULL if the parent row is deleted
  instead of deleting the child row.
* there is no FK constraint on old_issues.branchcode, allowing
  a branch to be deleted without changing archived requests.

Some miscellaneous cleanup was done as part of this patch:

* GetMemberIssuesAndFines (C4::Members) now uses bind variables
* fixed POD for GetMemberIssuesAndFines

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-15 08:36:31 -05:00
Chris Nighswonger
11a213a82f Bumping DB to 061 - Adding the ability to choose font type to the Label tool.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-03-08 11:19:34 -06:00
Paul POULAIN
eebc452ba9 bumping to 058 : opac_news lang field was too short
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-29 11:59:41 -06:00
Chris Nighswonger
1c1cb10e5e First installment on moving patronimages into the database.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-23 10:55:37 -06:00
Mason James
79491ebdf8 adding items.enumchron column.
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-20 20:12:15 -06:00
Galen Charlton
c5a360ce87 bug 1834: add entries to zebraqueue only when necessary
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-18 19:32:02 -06:00
Chris Nighswonger
bc895d8626 Adding Printer Profiles feature to the Label Creator.
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-16 11:26:38 -06:00
Chris Nighswonger
f560b5dd20 Adding 'more_subfields_xml' column to deleteditems table.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-02-06 23:19:32 -06:00
Galen Charlton
396f998788 more items work; handle unlinked subfields (DB rev => 048)
As a consequence, the items table now remains authoritative
for all item information: any subfields not explicitly mapped
in the framework are still stored.

In addition, the additional unlinked subfields are now retained
during a call to ModItem.

Two additional points of note:

* an upgrade script from 2.2 and earlier 3.0 instllations is needed
  to populate items.marc_subfields_xml; I am working on this.
* A behavour of bulkmarcimport.pl has now changed; any item subfields
  not explicitly mapped to a Koha items field were dropped; they are
  now retained and are stored in items.more_subfields_xml.  This can
  affect data migrations.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-22 07:24:13 -06:00
Joshua Ferraro
aa12a1f76c couple of commas out of place
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-08 20:31:18 -06:00
Ryan Higgins
17897d254a Fix for typo, leftover index on 046 updatedb commit.
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-08 20:09:56 -06:00
Henri-Damien LAURENT
b5a1060788 Improving encoding Support for z3950 clients.
Adding encoding for z3950 server information.
Uses Text::Iconv for conversion (ISO6937 and ISO_5428 and ISO5427)
For ISO 5426 (ANSEL or MARC-8) new char_decode5426 based on marc4j tool.

Not Tested on LOC or any USMARC z3950 source. But tested OK on BNF and SUDOC.

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-08 19:23:30 -06:00
Ryan Higgins
f18482f172 CHANGE TO PREVIOUS .046 DATABASE UPDATE
This commit changes .046 updatedatebase , where itemnumber was changed
to int and keyed on items table.  As there is code in serials module that
uses itemnumber (text) as a list of itemnumbers, this change would cause data
loss if that field had multiple items in it.
Instead, we add a new table to link serial and items tables, so that
(1) we can have many items per serial issue, and
(2) staged upgrades that use the serial.itemnumber (text) list won't be affected.
Further commits will make use of the serialitems linking table.

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-08 16:13:17 -06:00
Ryan Higgins
3de59aba27 Serials updates to link item record to serial table.
This commit makes db changes to subscription, serials tables:
  allow subscriptions larger than 127 issues
  link serial to item uniquely.
MARC Framework:
  Adding MARC tag 942$s (990$s unimarc) to map biblio.serial
Udate biblio.serial on new-subscription.
Use biblio.serial to check if Items.pm should return
  pubdate and enumeration text string from serials table with items.
Update opac-detail so serial items are sorted most recent first.
Adding link from items table to serial table.

Allows sorting of serials in details pages, and removes
enum data from itemnotes field.
Also fixes  visibility in serials item editor

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-08 11:11:45 -06:00
Joshua Ferraro
2baca29e58 WARNING: BIG I18N PATCH, you must import the subtag_registry.sql after this upgrade to benefit from the new features ... if you don't everything will work as before.
bugfixing I18N language selection from staff and OPAC, adding BiDi
support

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-05 02:59:51 -06:00
Joshua Ferraro
8d072519b6 synching deletedborrowers table with borrowers table
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-04 21:30:30 -06:00
Joe Atzberger
5e78bc9a07 currency expansion - symbol and timestamp. PLEASE VERIFY SQL edit. Should be equivalent to: ALTER TABLE currency ADD symbol varchar(5) default NULL, ADD timestamp timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP;
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 20:21:28 -06:00
Joshua Ferraro
5c23369af2 Fixing Database Definitions for Statuses *PARTIAL*
Prior to this fix, the status fields had three 'off' values, NULL, "",
and 0. I've reduced it to two in the db, removing the option for NULL, and
setting the default value to 0, however, we need to verify that we don't ever
write out as "" as this needlessly complicates the indexing process,
critical for searching or limiting by status (e.g., availability). Also,
queries that attempt to write a NULL value to one of these fields will fail
(based on my tests).

This patch includes the following changes:

* Updated the database definition for notforloan, damaged, itemlost, and
wthdrawn in kohastructure.sql to forbid NULL and default to 0; MySQL
can't forbid other values (such as empty ""), so this has to be handled
at the application layer and REQUIRES further patching.

* Fixed the 'limit by availability' query node in Search.pm to use a
much less confusing definition of 'available'

* Added code to set values to 0 where they are NULL or empty ( "" ) for
notforloan, damaged, itemlost or wthdrawn in both the MARC and the items
table:

  * Biblio.pm -> AddBiblioAndItems
  * catalogue/updateitem.pl
  * SEE NOTE BELOW, REQUIRES UPDATE TO THE REST OF KOHA'S ITEM MGT!

* Removed code in bulkmarcimport.pl that sets notforloan status depending
  on item-level or bib-level itemtype -- that flag is designed to be set
  only to override the notforloan setting for the item's (or bib's,
  depending on the syspref) assigned itemtype (it doesn't need to override
  to 'for loan', only to 'not for loan').

  added $dbh->do("truncate zebraqueue"); when operation is 'delete'

* I updated some notes in catalogue/updateitem.pl as to why ModItem can't be
used -- we don't have _a_ place where we can change the item and marc :/

  I've tested the following:

  bulkmarcimport.pl..........................MARC/items OK
  Staged Records Import......................NOT OK
  updateitem.pl (via moredetail.pl)..........MARC/items OK
  circulation.pl.............................NOT OK
  returns.pl.................................NOT OK
  addbiblio.pl...............................NOT OK
  additem.pl.................................NOT OK

Basically, there isn't a single place to apply this patch that will
update both item data and MARC data in one place ... a future patch
needs to address this issue.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-01-03 16:23:04 -06:00
Galen Charlton
e2169110c7 fixed typo in new borrower column
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-27 17:24:32 -06:00
Chris Cormack
dfc5c181bc Big bugfix for bug 1631
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-26 18:40:28 -06:00
Ryan Higgins
46d77f4461 Virtual shelves: per shelf sort, multiple add in OPAC, partial bug fixes.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-12-12 08:03:13 -06:00
Joshua Ferraro
f147287fed fix to kohastructure, comma probs
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-11-25 18:29:26 -06:00
Paul POULAIN
edb1515cc1 1507 : Possible Missing Foreign Key in Accountoffsets
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-11-25 17:16:13 -06:00
Joshua Ferraro
18fc0605b0 database changes for xisbn support
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-11-17 10:49:26 -06:00
Galen Charlton
b69facedc4 matching enhancements -- allow matching rule to be changed on the fly
Enhancement to store the matching rule associated with an
import batch and to allow the current matching rule in
effect to be changed and the duplicate detection redone.

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-11-16 07:37:24 -06:00
Galen Charlton
f45386a3a4 matcher serialization -- added matcher code and some keys
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-11-13 17:58:48 -06:00
Galen Charlton
c8e7e18e13 MARC matching - added tables to serialize C4::Matcher objects
also added two missing 'drop table if exists' statements

Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-11-13 17:58:45 -06:00
Chris Nighswonger
6a6f86f33c Moved kohastructure.sql into mysql dmbs directory
Signed-off-by: Chris Cormack <crc@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2007-11-13 11:22:42 -06:00
Renamed from installer/kohastructure.sql (Browse further)