Drupal question: Moderating content from new users on a site

Drupal LogoA question for Drupallers who manage community sites where members can post content: Is there a way to hold the first few posts from a new member for moderation until they’ve earned trust in the community?

Why I’m Asking

We had a massive spam attack on Unreality Shout this past weekend. A handful of malicious users generated hundreds of nodes of spam in a very short space of time.

Shout is an entertainment community where members can come along and blog news and reviews, participate in forum discussions, etc. But we get an awful lot of spam, which is incredibly frustrating. Much of it is profile spam, but a fair proportion is people coming onboard to write link-stuffed blog posts. I want to snuff this out because it’s damaging to the community and potentially damaging to the site if Google decides we’re a spam dump.

What I Want To Do

I want to hold content from new members for moderation. And I want it to be a largely automatic process.

Let’s say you have less than 6 posts on the site. Well, I want to queue your blog posts for approval before I let them through. Once you’ve got more than six (approved) posts, you’ve earned our trust and can post freely from that point forward.

So, the big question is – how do I achieve this type of moderation?

  • Can it be done natively through Drupal’s roles – ie. moving an author from a regular “authenticated user” role to an “Approved Author” role?
  • Contributed modules? Can an approval process be achieved through Rules, Workflow, Userpoints (as a mark of trust/authority) or something else?
  • Is there a way to notify the user that their post is held for moderation and the site admin know that there is content in the queue?
  • Custom module? Is it necessary to build a custom module for this kind of functionality?

I’ll leave the post with that information. I’d really like to spark a discussion around this topic, because I’ve tried a number of measures – like activating Mollom to protect blog entry nodes (didn’t work). Currently I’ve set the community to invite-only mode, but I’d like to open it up to the public again.

How have others handled this issue – Drupal sites like Examiner.com and NowPublic that encourage submissions from the public? I’d love to hear your suggestions…

5 comments

  1. You can get there with the Rules module, a View, Views Bulk Operations, and a “trusted author” role, I think.Rules would let you notify people that their post is held, notify moderators that there is content to modify.You could build a Bulk Operations View that would list the content in the moderation queue, and it should be possible (I think?) to calculate how many past posts the author has had and display it in the view. Or this could possibly just be a separate view of users, and you can use Bulk Operations to check off the ones with sufficient numbers of posts and change their roles.The thing is, moderation is going to be manual anyway, so as long as you give the moderator a good, easy tool to change roles as well (and see who’s ready to be updated), I don’t think it needs to be completely automated?

  2. When I had anonymous posting allowed, I used modr8 and modr8 bypass. Trusted roles bypassed the moderation. You would just need something to flip a user into the trusted role, then. In my case I trust authenticated users because I use a question that keeps most spammers from registering. I never tried something based on the number of posts. You could possibly use userpoints and the module that lets you set a role based on number of points.Michelle

    • Hmm, I like the sound of this solution. Rules in conjunction with Modr8 might do the trick. I wonder if you can do a quick calculation based on Userpoints or a simple post count to update a user’s role?Also, I’ve been using Mollom on the site forever, so captcha is on the signup form. I believe they’re human spammers. Or human to the point of sign-in, then they unleash the spambots! I don’t know, but it’s getting incredibly frustrating!

  3. My sign up form asks: “The Coulee Region is also known as the Driftless Area because the area was missed by these sheets of ice that covered much of the northern hemisphere during the last ice age.”Even human spammers have trouble with that one because they mostly are from 3rd world countries.There’s a module that will set a user’s role based on points. I don’t remember if it’s a submodule of UP or a separate one.Michelle

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s