subsections
logical structure
directory setup
database setup
architecture
pointers
webdav.org
python.org
|
LOGICAL STRUCTURE
OBJECTS
The GROUP.lounge worlds consists of objects which can have
various attributes and methods. Optionally an object can have
childs which are objects themselves.
Which attributes and methods are allowed for an object is defined
by the type definition. It also contains information about whether
childs are allowed for a type and if so which types of childs
can be appended to that object.
Every object has some common attributes like "title" and "description".
Every object has the following common methods
- change : change title, description, eventually content
- cut: move the object into the user's clipboard
- paste: move the object from the user's clipboard to the actual folder
- delete: move the object into the user's trashcan
- erase: delete the object completly
- members: share the object with another user.
The basic object types are a "folder" and a "document". A folder
is (as the name implies) a normal directory. Thus it is an object
without special attributes and is allowed to contains objects of
any type.
A document is an object which is not allowed to have childs. Instead
it can contain data of any form. Thus it's the pendant to a file
in a normal filesystem.
Another type defined in the basic system is a "note". A Note can
contains simple text and childs of type "note". Thus one can write
answers or additions to a note and append it to it. You can also
use it to create discussions.
One attribute is defined: "content" which holds the actual text.
USERS
Besides of objects GROUP.lounge has information about it's user
stored in user objects. These user objects contain information like
login, password, fullname, email contact and so on.
For each user there is a HOMEDIR object, a TRASHCAN object and a
CLIPBOARD object which are basically folders but with special meaning.
- HOMEDIR
- the root folder for any object belonging to the user.
- TRASHCAN
- every deleted object will first be moved into this folder
- CLIPBOARD
- A temporary space for objects e.g. when you want to move it
from one location to another.
Every user has the possibility to share his objects with other users.
If they are GROUP.lounge users already then the shared object will simply
be put into their HOMEDIR, if they are not they will get an email telling
them how to subscribe to the system (finding the shared object in their
HOMEDIR aswell.)
Internal every object has a members attribute which reflects which user's
have access to an object. If an object is shared the new user will be
appended to this list and a new object-child link will be created from
the new user's HOMEDIR to the shared object.
If a user decides to delete a shared object so we have to look at two cases:
- The object is the first shared one, that means the parent folder is
belonging only to the user. This means that he want's to get rid of his
share. Thus only the link between the user's folder and the shared object
will be deleted (as well as the membership information in the subtree).
Thus the links from the other user's folders to this object remain intact.
- If the object is inside such a tree we assume that the user knows what he
is doing and we delete the object for all users. This is important as
otherwise the consistency of the shared tree is somehow a problem or
at least might lead to confusion.
If an object is moved the same rules apply.
|