Forum OpenACS Q&A: closed forum vs disabled forum
I think that a forum with Closed posting policy is read-only. A disabled one, should be hidden to any user (even to admins on normal pages, it could be shown only on admin pages).
Now, when a forum is "closed" it disappears from /forums/ page and I think it should not.
If I'm right, and we fix that, we should warn someway to our site admins in order to disable those forums that should be hidden that now are closed.
Documentation should clarify these meanings, so that their interpretation remains consistent. If not defined in the forums/doc, then the faqs: http://openacs.org/faq/one-faq?faq_id=122349 ..but they are not defined there. =(
Here's my understanding of the definitions in the context of OpenACS:
closed - members are accepted by invitation only; Current members can post (provided permissions allow it).
disabled - inactivated , unable to view, post etc the forum.
read-only - a permissions setting where forum members cannot write to the forum.
moderated - post requests to a forum are potentially screened by a moderator before they are posted (or potentially deleted after screening).
Apparently, a forum is not displayed when it is closed, unless the user viewing the page is a member of the forum.. this seems like consistent UI.
Wouldn't it be nice to have some basic documentation to go with this package?
Forums with a "closed" policy shouldn't disappear unless they are "disabled" or the user has no read rights on it.
According to the help text of the form to create a forum, the policy can be, I quote:
Open allows any users to post and have posts appear immediately, moderated means posts must be approved by a moderator before others can see them, and closed means only administrators may post.
So my understanding is that when a forum has a "closed" policy, current members can't post unless they're admin. It's equivalent to "read-only".
That help text is not consistent with OpenACS subsite and other applications terminology. Closed means "not open", which is different than "Read-only". Maybe the forum use is consistent with how dotLRN is used or used to be used?
Permissions to read, write, create, delete and admin are (supposed to be) standardized in OpenACS by using the OpenACS permissions system. Open/Closed should refer to how one gains membership to groups or subsites, it's visibility to the user etc.
If closed meant something else for forums, it really should be updated to be consistent with the OpenACS standard, if only to reduce the learning curve for everyone using and developing on OpenACS.
dotLRN refers to "closed" here: http://openacs.org/forums/message-view?message_id=1503658 and
I agree with you that it's not consistent with the OpenACS standard use of the terms, I was just stating the current situation. It looks like the use case for the forum policy, and probably the specific need the policy has been implemented for, is different and so is the meaning of "closed" in there (quick fix: rename "closed" to "read-only" :). I understand it as a "posting policy", not an enrollment one.
In the .LRN context a forum inherits the permissions of the club or class it belongs to, and an user won't be able to access the forum unless she's a member of the club or class. Members access to a forum within a club/class can be set/refined using permissions.
I guess that "posting policy" has been added in the first place to provide a way to moderate forums, which can't be done using the permission system AFAIK. But I agree with you that the "open" and "closed" policies duplicate or can be done using permissions.
I think that whatever we decide to do, the behavior should be consistent at least inside forum. For .LRN 2.4.1, since the policy function is used, it has to be applied correctly and we need to fix it. It would be nice though to work on cleaning it up for 5.5
I don't think this is that complicated. Closed means noone can post to the forum. This could happen if a discussion has ended, but you want to retain the historical record of the forum for people to read. There is a seperate disabled feature to hide the forum. You can't join a forum or change who can see which forum within a forums package instance (without manually fooling with the permission) if they have read access to the foums instance.
So I think the solution is to change "Closed" to a more clear description.
The query to list the forums seems to say that any forum the user can read should be displayed in the list of forums
forums_forums_enabled.posting_policy = 'open'
or forums_forums_enabled.posting_policy = 'moderated'
or 't' = acs_permission__permission_p(forums_forums_enabled.forum_id, :user_id,'forum_read')
forums_forums_enabled.posting_policy = 'open' or forums_forums_enabled.posting_policy = 'moderated'is not necessary since the posting policy doesn't affect the 'read' privilege. I wonder why the 'closed' policy doesn't appear in this clause, probably it has been interpreted as "not a member, can't read it" by the author.
Note this query is from when the forums pages were turned into includes. I could not trace it all the way back to the original forums package when it was created since the xql file seems to have been removed.
So the question is why does the forum disapear from the forums page, unless closing it causes a change in permissions in the background.
Change "closed" in the context of forums to "discontinued", and "open" to "active". Discontinued and Active are more specific to the intended meaning and are consistent with how products and services can change status in ecommerce.
On the other hand, a forum can be enabled or disabled (independently from it's posting policy), so a "discontinued" or "active" forum can be also mistaken as "disabled".
I suggest to review how sql is querying that info about if a user can or can't view a forum. Permissions is more adequate than posting policy.
So, then, closed means read-only, right? Shall we change that value? If yes... only at UI or deeper?
I have written about that here: http://openacs.org/forums/message-view?message_id=1876698