Database changes which actually work, for the moment.

This commit is contained in:
Andrew McMillan 2010-02-28 11:35:52 +13:00
parent 3cefbf9894
commit 899337a679
2 changed files with 68 additions and 9 deletions

View File

@ -304,11 +304,40 @@ CREATE INDEX sync_processing_index ON sync_changes( collection_id, dav_id, sync_
CREATE TABLE access_ticket (
ticket_id TEXT PRIMARY KEY,
is_collection BOOLEAN,
is_public BOOLEAN,
privileges BIT(24),
target_id INT8,
displayname TEXT,
target_collection_id INT8 NOT NULL REFERENCES collection(collection_id) ON UPDATE CASCADE ON DELETE CASCADE,
target_resource_id INT8 REFERENCES caldav_data(dav_id) ON UPDATE CASCADE ON DELETE CASCADE,
dav_displayname TEXT,
expires TIMESTAMP
);
-- At this point we only support binding collections
CREATE TABLE dav_binding (
bind_id INT8 DEFAULT nextval('dav_id_seq') PRIMARY KEY,
target_ticket_id TEXT REFERENCES access_ticket(ticket_id) ON UPDATE CASCADE ON DELETE CASCADE,
target_collection_id INT8 REFERENCES collection(collection_id) ON UPDATE CASCADE ON DELETE CASCADE,
dav_owner_id INT8 NOT NULL REFERENCES principal(principal_id) ON UPDATE CASCADE ON DELETE CASCADE,
parent_container TEXT,
dav_name TEXT,
dav_displayname TEXT
);
CREATE TABLE collection_mashup (
mashup_id SERIAL PRIMARY KEY,
dav_owner_id INT8 NOT NULL REFERENCES principal(principal_id) ON UPDATE CASCADE ON DELETE CASCADE,
parent_container TEXT,
dav_name TEXT,
dav_displayname TEXT
);
CREATE TABLE mashup_member (
mashup_id INT8 NOT NULL REFERENCES collection_mashup(mashup_id) ON UPDATE CASCADE ON DELETE CASCADE,
target_ticket_id TEXT REFERENCES access_ticket(ticket_id) ON UPDATE CASCADE ON DELETE CASCADE,
target_collection_id INT8 REFERENCES collection(collection_id) ON UPDATE CASCADE ON DELETE CASCADE,
member_colour TEXT
);
SELECT new_db_revision(1,2,8, 'Août' );

View File

@ -1,21 +1,51 @@
-- This database update adds support for the draft webdav-sync specification
-- as well as some initial support for addressbook collections which will
-- be needed to support carddav.
-- This database update adds support for tickets to be handed out to grant
-- specific access to a collection or individual resource, as read-only or
-- read-write. A table is also added to manage WebDAV binding, in line
-- with http://tools.ietf.org/html/draft-ietf-webdav-bind.
BEGIN;
SELECT check_db_revision(1,2,7);
CREATE TABLE access_ticket (
ticket_id TEXT PRIMARY KEY,
is_collection BOOLEAN,
is_public BOOLEAN,
privileges BIT(24),
target_id INT8,
displayname TEXT,
target_collection_id INT8 NOT NULL REFERENCES collection(collection_id) ON UPDATE CASCADE ON DELETE CASCADE,
target_resource_id INT8 REFERENCES caldav_data(dav_id) ON UPDATE CASCADE ON DELETE CASCADE,
dav_displayname TEXT,
expires TIMESTAMP
);
-- At this point we only support binding collections
CREATE TABLE dav_binding (
bind_id INT8 DEFAULT nextval('dav_id_seq') PRIMARY KEY,
target_ticket_id TEXT REFERENCES access_ticket(ticket_id) ON UPDATE CASCADE ON DELETE CASCADE,
target_collection_id INT8 REFERENCES collection(collection_id) ON UPDATE CASCADE ON DELETE CASCADE,
dav_owner_id INT8 NOT NULL REFERENCES principal(principal_id) ON UPDATE CASCADE ON DELETE CASCADE,
parent_container TEXT,
dav_name TEXT,
dav_displayname TEXT
);
CREATE TABLE collection_mashup (
mashup_id SERIAL PRIMARY KEY,
dav_owner_id INT8 NOT NULL REFERENCES principal(principal_id) ON UPDATE CASCADE ON DELETE CASCADE,
parent_container TEXT,
dav_name TEXT,
dav_displayname TEXT
);
CREATE TABLE mashup_member (
mashup_id INT8 NOT NULL REFERENCES collection_mashup(mashup_id) ON UPDATE CASCADE ON DELETE CASCADE,
target_ticket_id TEXT REFERENCES access_ticket(ticket_id) ON UPDATE CASCADE ON DELETE CASCADE,
target_collection_id INT8 REFERENCES collection(collection_id) ON UPDATE CASCADE ON DELETE CASCADE,
member_colour TEXT
);
SELECT new_db_revision(1,2,8, 'Août' );
COMMIT;