This product provides code to support discussion groups, which are the most common type of group in GroupServer. The complex posting rules for a discussion group are implemented by this product. The discussion group code is enabled by changing the marker interface.
The core User Can Post system [1] provides one rule: is the person blocked from posting. A discussion group provides six additional rules, with their associated viewlets.
- Has a Profile:
- Checks to see if the person posting has a profile. The other way to look at this is the person is not anonymous.
- Member:
- Checks to see if the person posting is a group member.
- Working Email Address:
- Checks to see if the person posting has a verified email address. This prevents spamming, because you know that whoever posts has a working address.
- Posting Limit:
- Each group has a maximum posting rate [2]. This rule ensures that no-one exceeds the rate.
- Required Site Properties:
- This rules ensures everyone has completed sign-up.
- Required Group Properties:
- Each group can have some properties that are required for just the group [3]. This rule ensures that each member has the properties set.
A group is turned into a discussion group by changing the marker interface
for the group folder to IGSDiscussionGroup
. This marker interface has
the following inheritance tree:
gs.group.base.interfaces.IGSGroupMarker △ │ gs.group.type.discussion.interfaces.IGSDiscussionGroup
- Code repository: https://source.iopen.net/groupserver/gs.group.type.discussion
- Questions and comments to http://groupserver.org/groups/development
- Report bugs at https://redmine.iopen.net/projects/groupserver
[1] | See the gs.group.member.canpost product for more
information:
<https://source.iopen.net/groupserver/gs.group.member.canpost/> |
[2] | See the gs.group.messages.ratelimit product for
more information:
<https://source.iopen.net/groupserver/gs.group.messages.ratelimit/> |
[3] | There is no interface for the administrator to
set the required group-properties. However, they can be set in the
ZMI: add the property IDs to the required_properties attribute
of the mailing list. |