Bugzilla – Attachment 8007 Details for
Bug 7310
Improving permissions on lists (virtual shelves)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 7310: DB revision for Improving list permissions
patch.txt (text/plain), 4.37 KB, created by
Marcel de Rooy
on 2012-03-05 08:07:01 UTC
(
hide
)
Description:
Bug 7310: DB revision for Improving list permissions
Filename:
MIME Type:
Creator:
Marcel de Rooy
Created:
2012-03-05 08:07:01 UTC
Size:
4.37 KB
patch
obsolete
>From dc675846a21a126039ba7f1e6b7c6aae63e21a21 Mon Sep 17 00:00:00 2001 >From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >Date: Thu, 8 Dec 2011 16:10:57 +0100 >Subject: [PATCH] 7310a: DB revision for Improving list permissions >Content-Type: text/plain; charset="utf-8" > >DB revision for improving list permissions. >Adds new table virtualshelfshares for maintaining shared private lists. >Adds three columns to virtualshelves for permissions per list. >Adds column borrowernumber to virtualshelfcontents. > >Feb 16, 2012: Rebased. > >Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> > >Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >Feb 28, 2012: Added three FK constraints for QA (for owner/borrowernumber in virtualshelves, shelfcontents and shelfshares). Tested update again. >Also removed the note about public lists, made obsolete by earlier adjustments for comments from Owen. >Feb 29, 2012: Rebased. Added an update statement to replace invalid borrowernumbers with null in virtualshelves before adding constraint and added a delete statement for private lists without owner now (as a result of the first step). Tested it again. >March 5, 2012: Rebased. >--- > installer/data/mysql/updatedatabase.pl | 27 +++++++++++++++++++++++++++ > 1 files changed, 27 insertions(+), 0 deletions(-) > >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index e540874..13a8651 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -4734,6 +4734,33 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { > SetVersion($DBversion); > } > >+$DBversion = "3.07.99.XXX"; #FIXME >+if ( C4::Context->preference("Version") lt TransformToNum($DBversion) ) { >+ $dbh->do("ALTER TABLE virtualshelves MODIFY COLUMN owner int"); #should have been int already (fk to borrowers) >+ $dbh->do("UPDATE virtualshelves vi LEFT JOIN borrowers bo ON bo.borrowernumber=vi.owner SET vi.owner=NULL where bo.borrowernumber IS NULL"); #before adding the constraint on borrowernumber, we need to get rid of deleted owners >+ $dbh->do("DELETE FROM virtualshelves WHERE owner IS NULL and category=1"); #delete private lists without owner (cascades to shelfcontents) >+ $dbh->do("ALTER TABLE virtualshelves ADD COLUMN allow_add tinyint(1) DEFAULT 0, ADD COLUMN allow_delete_own tinyint(1) DEFAULT 1, ADD COLUMN allow_delete_other tinyint(1) DEFAULT 0, ADD CONSTRAINT `virtualshelves_ibfk_1` FOREIGN KEY (`owner`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE SET NULL"); >+ $dbh->do("UPDATE virtualshelves SET allow_add=0, allow_delete_own=1, allow_delete_other=0 WHERE category=1"); >+ $dbh->do("UPDATE virtualshelves SET allow_add=0, allow_delete_own=1, allow_delete_other=0 WHERE category=2"); >+ $dbh->do("UPDATE virtualshelves SET allow_add=1, allow_delete_own=1, allow_delete_other=1 WHERE category=3"); >+ $dbh->do("UPDATE virtualshelves SET category=2 WHERE category=3"); >+ >+ $dbh->do("ALTER TABLE virtualshelfcontents ADD COLUMN borrowernumber int, ADD CONSTRAINT `shelfcontents_ibfk_3` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE SET NULL"); >+ $dbh->do("UPDATE virtualshelfcontents co LEFT JOIN virtualshelves sh USING (shelfnumber) SET co.borrowernumber=sh.owner"); >+ >+ $dbh->do("CREATE TABLE virtualshelfshares >+ (id int AUTO_INCREMENT PRIMARY KEY, shelfnumber int NOT NULL, >+ borrowernumber int, invitekey varchar(10), sharedate datetime, >+ CONSTRAINT `virtualshelfshares_ibfk_1` FOREIGN KEY (`shelfnumber`) REFERENCES `virtualshelves` (`shelfnumber`) ON DELETE CASCADE ON UPDATE CASCADE, >+ CONSTRAINT `virtualshelfshares_ibfk_2` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE SET NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8"); >+ >+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacAllowPublicListCreation',1,'If set, allows opac users to create public lists',NULL,'YesNo');"); >+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacAllowSharingPrivateLists',0,'If set, allows opac users to share private lists with other patrons',NULL,'YesNo');"); >+ >+ print "Upgrade to $DBversion done (BZ7310: Improving list permissions)\n"; >+ SetVersion($DBversion); >+} >+ > =head1 FUNCTIONS > > =head2 DropAllForeignKeys($table) >-- >1.6.0.6 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 7310
:
7092
|
7678
|
7679
|
7680
|
7681
|
7682
|
7769
|
7819
|
7820
|
7821
|
7823
|
7824
|
7825
|
7828
|
7873
|
7874
|
7875
|
7876
|
7877
|
7878
|
7879
|
7909
|
7910
|
7925
|
7926
|
7939
|
7940
|
7942
|
7953
|
8006
|
8007
|
8008
|
8009
|
8259
|
8260
|
8261
|
8262
|
8263
|
8264
|
8265
|
8266
|
8267
|
8410
|
8411
|
8412
|
8467
|
8519