Forum OpenACS Q&A: Response to Would you help me test a blog module?

Posted by Jerry Asher on
Yes, I think that porting it to ACS 3.4.10 should be straight forward.

I built it using a hacked OpenACS 3.2.5 that I've back ported a lot of 3.4.10 features too.  I would think it would take a few hours at most to change the ns_db calls to db_ calls.  A quick glance at the datamodel shows a few changes, the most appear to be that the 3.2.5 version uses a native boolean datatype.

As far as group scoping, I looked into that at the beginning, but it seemed that bboard was built before the "standard acs group scoping mechanism" came about.  Specifically, bboard_topics, contains group_id, but does not contain a scope column.  I would imagine that adding group scoping to blog is more a matter of adding group scoping to bboard itself.  That is, wading through 153 files in www/bboard plus tcl/bboard-defs.tcl and adding support for group scoping.  It may not be that bad.  If you aren't using the usgeospatial forums or the ed-com forums, etc., you can ignore those files....  Anyway, for 153 reasons, I chose not to do the group-scoping, but it would be nice.

It has been built such that any member of a blog's administration group is considered an owner.  The site-wide admin can visit /admin/bboard/ and then click on the {blog of interest} and can use the hyper-administration page to add or remove blog administrators from a particular blog.  That will probably be tedious if you have tons of groups, so you could migrate that ability from /admin to /bboard and let groups take care of administrator status for themselves.

Alternatively, I think that your suggestion that the club group_id be the administrator group_id would work.  Bboard has a function (bboard_user_is_admin_for_topic) that checks to see if the user is the primary maintainer of the bboard (the creator of the bboard), or if the user is an ad_administration_group_member of bboard and your topic.  It eventually boils down to just checking for group membership with a group defined for bboard in the table administration_info.  I believe you can just short-circuit the creation of that group in the bboard code with the substitution of the club's group id.  And then you would be in like flynn.

Enjoy, I hope you find it useful.