On Tue, Jan 6, 2009 at 10:42 AM, imadhusudhanan
<[email protected]> wrote:
>    I need suggestions. My application is a multi user webapp where we do 
> document management (upload, download etc). I propose few design ideas to use 
> jackrabbit. Pls do help me choose one also do put your ideas to use JR 
> effectively.
>
>    1) As this is a multi user environment, i consider spliting up the user 
> into workspaces and keeping the accessibility of the user to his/her 
> workspace.
>    2) Can One repository one user a better idea .. ? can we have this kind of 
> design such that when a new user comes he will get a new repo.

Creating a new workspace is a rather "big" operation for "just" a new
user, and your code gets tricky once it wants to access data from
multiple users + some common content inside the same request if
multiple workspaces get involved, because you need to know both
workspace and path to identify a location. Also, you would have to
implement access control in your application (ie. only user1 can write
to workspace user1ws, only XY is allowed to create a new workspace,
etc.), which is a feature that is already present in JCR but optimized
for node-level ACLs.

Using even multiple repositories won't work at all - or only with lots
of efforts, since you need multiple Jackrabbit instances for those
repositories (you'd need to write code to setup a new repository incl.
configuration, database access, etc) - so this is too much work for
simply a new user.

IMHO the best way is to put all users into one workspace and use
folder structures to separate them. A good analogy is the unix
filesystem standard for modeling the repository, so you'd might have
/home/user1, /home/user2 etc. Access rights can easily separate them
from each other.

See also rule #3 of David's Model "Workspaces are for clone(), merge()
and update()":

http://wiki.apache.org/jackrabbit/DavidsModel#head-ca639e0ee110b80e8277a50f9b9de092b5d86427

Regards,
Alex

-- 
Alexander Klimetschek
[email protected]

Reply via email to