How can we make commenting easily available to casual browsers? This has come up in other places under the label "anonymous posting." In a recent thread (http://openacs.org/forums/message-view?message_id=160672), a solution was proposed for forums where we simply grant appropriate access to user_id=0 ('Unregistered User'). This is a great solution, lets the permissions system really shine, and works similarly to "Anonymous Coward" systems on other bboard tools.
Weblog comments work a little differently. It's sort of like registration, but simpler. Commenters enter their name, email address, (optional) URL and comment. Then they send everything with a single click. As an example, here is what the interface for Movable Type (MT), a popular blogging tool, looks like: http://grumet.net/weblog/archives/2004/03/09/000688.html.
IMO this interface is pretty friendly and worth copying.
But in order to enable this, we have to figure out where to store the information.
Option #1 is a helper table. Subject to enabling by a parameter, we would assign creation_user=0 to comments by unregistered posters and store name/email/url in a table called "general_comments_unreg_post" whose primary key refers to general_comments.comment_id. This leverages the permission system in the same way as the forums approach described above, but now provides an opportunity to put a name next to every comment.
Option #2 is to provide a low-barrier way to get data into standard system tables. My first thought was to create a "minimal user" with a null password etc. It might work but makes my skin crawl a little. Tracy pointed out that we could create a "person" object instead.
Both options have some implied buildout of general-comments and the packages that consume it. I've partially implemented Option #1. It works fine and doesn't break a huge number of assumptions. Option #2 has the potential to be cleaner, since the person and party tables pretty closely match the data we want to store, but I haven't investigated it carefully yet.
I'm curious to know if other find this interesting, would support it, object, or have other reactions.