We need to support different types of GroupSpaces.

* Collaboration Spaces
* E-Learning Courses
* Project Groups
* ...

These GroupSpaces have overlapping policies. Let's analyse the different
policies that can exist:

Sharing

[ ] Sharing content is important for GroupMembers
[ ] GroupMembers just care about their own content

Modification

[ ] GroupMembers want their documents to be editable by other GroupMembers
[ ] GroupMembers don't allow anyone to edit their documents
[ ] GroupMembers can invite other GroupMembers to edit their documents
[ ] GroupMembers can ask whether they are allowed to edit a document

Visibility

[ ] Private content can be seen by other Members
[ ] Private content is invisible to other Members

Collaboration Support

[ ] GroupMembers need support for collaboration
[ ] GroupMembers get along on their own without collaboration support

Publishing

[ ] Members need support for publishing content in place
[ ] Members are not interested in publishing in place

Basic GroupSpace Membership policy
[ ] Only Groups can become GroupMember
[ ] No Groups can become GroupMembers
[ ] Both Groups and Members can become GroupMember

Becoming a GroupMember
[ ] All Members of the site are automatically GroupMember
[ ] Members can sign up for a GroupSpace
[ ] Members apply to become GroupMember and GroupAdmin decides
[ ] The only way to become GroupMember is to become part of a GRUF group that is already GroupMember

Inviting GroupMembers
[ ] A GroupMember can invite Members
[ ] Only a GroupAdmin can invite Members
[ ] A GroupMember can invite by sending an email to somebody who then first
[ ] Only a GroupAdmin can invite by sending an email to somebody who then first

Promotion
[ ] GroupAdmin can promote GroupMember to become a GroupReviewer
[ ] GroupAdmin can promote a GroupMember to become a GroupAdmin
[ ] GroupMember can promote himself to become a GroupReviewer
[ ] GroupMember can promote himself to become a GroupAdmin

Content Visibility
[ ] Anonymous can see private content in a GroupSpace
[ ] Anonymous can see visible content in a GroupSpace
[ ] Anonymous can see public content in a GroupSpace
[ ] GroupMembers can see private content in a GroupSpace
[ ] GroupMembers can see visible content in a GroupSpace
[ ] GroupMembers can see public content in a GroupSpace
[ ] Members can see private content in a GroupSpace
[ ] Members can see visible content in a GroupSpace
[ ] Members can see public content in a GroupSpace

Content Modification
[ ] GroupMembers can edit private content in a GroupSpace
[ ] GroupMembers can edit visible content in a GroupSpace
[ ] GroupMembers can edit public content in a GroupSpace
[ ] Members can edit private content in a GroupSpace
[ ] Members can edit visible content in a GroupSpace
[ ] Members can edit public content in a GroupSpace

Content Creation
[ ] GroupMembers can add content in a GroupSpace
[ ] GroupMembers can add content in a GroupSpace
[ ] GroupMembers can add content in a GroupSpace
[ ] Members can add content in a GroupSpace
[ ] Members can add content in a GroupSpace
[ ] Members can add content in a GroupSpace

Mailing List
[ ] GroupMembers can send a mail to the mailing list
[ ] Members can send a mail to the mailing list
[ ] Anonymous can send a mail to the mailing list

It could make sense to map technical roles to actual roles

* Participant -> Student
* GroupMember -> Staff
* Moderator   -> Trainer or Coach or Project Manager

