First of all, it's great to see Slide 2.0 hit the beta phase - well done, and thanks for the time and effort.
Secondly, I have 2 questions that will hopefully be easy to answer:
1) I use the single-sign-on mechanism for Tomcat with slide as a webapp. I don't want to use SlideRealm because my other webapps would also have to use it, so my users/roles are in a standard Tomcat RDBMS realm. I created roles called root, guest and user and assigned these to the users in my RDBMS realm. These users can access /slide/files path and /slide/users/. They can open and save existing files using XP webfolders as the client. However, when I try and create a new file I get a 403 on the PUT - I suspect this is because my users don't have access to the revisions stuff (you get a 403 if you try and read /slide/history, /slide/workspace/ and slide/workresource/. This applies even to users with the root role! What am I doing wrong? It seems to be very close to working. Is it necessary to use the slide realm?
Just guessing, but maybe, for some reason, you do not have write access?!
2) I'm using the J2EE realm, configured as described in the slide-doc web app. However, I am using the pre 2.0 beta schema. It all seems to work as before, but I am wondering where I can get the latest schema from? It doesn't seem to be part of the binary distribution for the beta.
Oooops. You are right, the schema is not part of the binary release. I will think about how to make this public, though. Anyway until this happens I will attach the version from CVS for SQL Server...
Oliver
BTW, I am using SQL Server.
Cheers,
Patrick
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
/**********************************************************************/ /****** DROP SLIDE TABLES ******/ /**********************************************************************/
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[OBJECT]') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[OBJECT]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[BINDING]') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[BINDING]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id =
OBJECT_ID(N'[dbo].[PARENT_BINDING]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[PARENT_BINDING]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[CHILDREN]') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[CHILDREN]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[LINKS]') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[LINKS]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[LOCKS]') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[LOCKS]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id =
OBJECT_ID(N'[dbo].[VERSION_CONTENT]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[VERSION_CONTENT]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[PROPERTIES]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[PROPERTIES]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[PERMISSIONS]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[PERMISSIONS]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[VERSION_PREDS]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[VERSION_PREDS]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id =
OBJECT_ID(N'[dbo].[VERSION_LABELS]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[VERSION_LABELS]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id =
OBJECT_ID(N'[dbo].[VERSION_HISTORY]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[VERSION_HISTORY]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[VERSION]') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[VERSION]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[BRANCH]') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[BRANCH]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[LABEL]') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[LABEL]
GO
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[URI]') AND
OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[URI]
GO
/**********************************************************************/
/****** DROP EXISTING USER DEFINED DATA TYPES ******/
/**********************************************************************/
sp_droptype id_type
GO
sp_droptype uri_str_type
GO
sp_droptype revision_no_type
GO
sp_droptype hash_type
GO
sp_droptype literal_str_type
GO
sp_droptype value_str_type
GO
/**********************************************************************/
/****** ADD USER DEFINED DATA TYPES ******/
/**********************************************************************/
sp_addtype id_type, bigint
GO
sp_addtype uri_str_type, "nvarchar(800)"
GO
sp_addtype revision_no_type, "nvarchar(20)"
GO
sp_addtype hash_type, bigint
GO
sp_addtype literal_str_type, "nvarchar(3000)"
GO
sp_addtype value_str_type, "nvarchar(255)"
GO
/**********************************************************************/
/****** CREATE SLIDE TABLES ******/
/**********************************************************************/
CREATE TABLE dbo.URI (
URI_ID id_type IDENTITY UNIQUE NOT NULL,
URI_STRING uri_str_type UNIQUE NOT NULL,
-- UNIQUE NONCLUSTERED (URI_ID)
)
GO
CREATE INDEX XUID
ON URI(URI_ID)
GO
CREATE INDEX XUSTRING
ON URI(URI_STRING)
GO
CREATE TABLE dbo.OBJECT (
URI_ID id_type PRIMARY KEY,
CLASS_NAME nvarchar(255) NOT NULL,
CONSTRAINT FK_OBJECT_URI_ID
FOREIGN KEY (URI_ID)
REFERENCES URI (URI_ID)
)
GO
CREATE TABLE dbo.BINDING (
URI_ID id_type NOT NULL
REFERENCES URI (URI_ID),
NAME uri_str_type NOT NULL,
CHILD_UURI_ID id_type NOT NULL
REFERENCES URI (URI_ID),
UNIQUE CLUSTERED (URI_ID, NAME, CHILD_UURI_ID)
)
GO
CREATE TABLE dbo.PARENT_BINDING (
URI_ID id_type NOT NULL
REFERENCES URI (URI_ID),
NAME uri_str_type NOT NULL,
PARENT_UURI_ID id_type NOT NULL
REFERENCES URI (URI_ID),
UNIQUE CLUSTERED (URI_ID, NAME, PARENT_UURI_ID)
)
GO
CREATE TABLE dbo.LINKS (
URI_ID id_type NOT NULL FOREIGN KEY
REFERENCES URI (URI_ID),
LINK_TO_ID id_type NOT NULL FOREIGN KEY
REFERENCES URI (URI_ID),
--UNIQUE CLUSTERED (URI_ID, LINK_TO_ID)
)
GO
CREATE INDEX XURI_ID
ON LINKS(URI_ID)
GO
CREATE INDEX XLINK_TO_ID
ON LINKS(LINK_TO_ID)
GO
CREATE TABLE dbo.LOCKS (
LOCK_ID id_type PRIMARY KEY,
OBJECT_ID id_type NOT NULL FOREIGN KEY
REFERENCES URI (URI_ID),
SUBJECT_ID id_type NOT NULL FOREIGN KEY
REFERENCES URI (URI_ID),
TYPE_ID id_type NOT NULL FOREIGN KEY
REFERENCES URI (URI_ID),
EXPIRATION_DATE numeric(14, 0) NOT NULL,
IS_INHERITABLE bit NOT NULL,
IS_EXCLUSIVE bit NOT NULL,
OWNER nvarchar(255),
CONSTRAINT FK_LOCKS_LOCK_ID
FOREIGN KEY (LOCK_ID)
REFERENCES URI (URI_ID)
)
GO
CREATE TABLE dbo.BRANCH (
BRANCH_ID id_type IDENTITY UNIQUE NOT NULL,
BRANCH_STRING nvarchar(255) UNIQUE NOT NULL,
UNIQUE NONCLUSTERED (BRANCH_ID)
)
GO
CREATE TABLE dbo.LABEL (
LABEL_ID id_type IDENTITY UNIQUE NOT NULL,
LABEL_STRING nvarchar(255) NOT NULL,
UNIQUE NONCLUSTERED (LABEL_ID)
)
GO
CREATE TABLE dbo.VERSION (
URI_ID id_type PRIMARY KEY,
IS_VERSIONED bit NOT NULL,
CONSTRAINT FK_VERSION_URI_ID
FOREIGN KEY (URI_ID)
REFERENCES URI (URI_ID)
)
GO
CREATE TABLE dbo.VERSION_HISTORY (
VERSION_ID id_type IDENTITY UNIQUE NOT NULL,
URI_ID id_type NOT NULL FOREIGN KEY
REFERENCES VERSION (URI_ID),
BRANCH_ID id_type NOT NULL FOREIGN KEY
REFERENCES BRANCH (BRANCH_ID),
REVISION_NO nVARCHAR(20) NOT NULL,
--UNIQUE CLUSTERED (URI_ID, BRANCH_ID, REVISION_NO)
)
GO
CREATE INDEX XVERSION_HISTORY1
ON VERSION_HISTORY(URI_ID, BRANCH_ID, REVISION_NO)
GO
CREATE TABLE dbo.VERSION_PREDS (
VERSION_ID id_type NOT NULL FOREIGN KEY
REFERENCES VERSION_HISTORY (VERSION_ID),
PREDECESSOR_ID id_type NOT NULL FOREIGN KEY
REFERENCES VERSION_HISTORY (VERSION_ID),
UNIQUE CLUSTERED (VERSION_ID, PREDECESSOR_ID)
)
GO
CREATE INDEX XVERSION_PREDS1
ON VERSION_PREDS(VERSION_ID, PREDECESSOR_ID)
GO
CREATE TABLE dbo.VERSION_LABELS (
VERSION_ID id_type NOT NULL FOREIGN KEY
REFERENCES VERSION_HISTORY (VERSION_ID),
LABEL_ID id_type NOT NULL FOREIGN KEY
REFERENCES LABEL (LABEL_ID),
UNIQUE CLUSTERED (VERSION_ID, LABEL_ID)
)
GO
CREATE TABLE dbo.VERSION_CONTENT (
VERSION_ID id_type PRIMARY KEY,
CONTENT image NOT NULL,
CONSTRAINT FK_VC_VERSION_ID
FOREIGN KEY (VERSION_ID)
REFERENCES VERSION_HISTORY (VERSION_ID),
)
GO
CREATE TABLE dbo.PROPERTIES (
VERSION_ID id_type NOT NULL FOREIGN KEY
REFERENCES VERSION_HISTORY (VERSION_ID),
PROPERTY_NAMESPACE nvarchar(50) NOT NULL,
PROPERTY_NAME nvarchar(50) NOT NULL,
PROPERTY_VALUE nvarchar(255) NOT NULL,
PROPERTY_TYPE nvarchar(50) NOT NULL,
IS_PROTECTED bit NOT NULL,
UNIQUE CLUSTERED (VERSION_ID, PROPERTY_NAMESPACE, PROPERTY_NAME)
)
GO
CREATE TABLE dbo.PERMISSIONS (
OBJECT_ID id_type NOT NULL FOREIGN KEY
REFERENCES URI (URI_ID),
SUBJECT_ID id_type NOT NULL FOREIGN KEY
REFERENCES URI (URI_ID),
ACTION_ID id_type NOT NULL FOREIGN KEY
REFERENCES URI (URI_ID),
VERSION_NO nVARCHAR(20) NULL,
IS_INHERITABLE bit NOT NULL,
IS_NEGATIVE bit NOT NULL,
-- Both order and sequence would be more suitable, but can not be used
SUCCESSION int NOT NULL,
UNIQUE CLUSTERED (OBJECT_ID, SUBJECT_ID, ACTION_ID),
UNIQUE (OBJECT_ID, SUCCESSION)
)
GO
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
