DOWNLOAD NEWS
INTRO CONTACT
DOCUMENTATION LINKS
SCREENSHOTS Mailinglist
[ documentation ]

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:

  1. 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.
  2. 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.