Skip to content

Latest commit

 

History

History
70 lines (55 loc) · 2.45 KB

README.rst

File metadata and controls

70 lines (55 loc) · 2.45 KB

Introduction

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.

Posting Rules

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.

Marker Interface

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

Resources

[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.