I am in need of a means of moderating data entered through a user's profile page, or at least for certain specified fields, both upon initial submission and after any revision. These are fields that have been added to the basic user profile (example.com/user/#), editable through the "my account" link -- fields that can be added through Home » Administration » Configuration » People » Account settings.

The most important fields to moderate involve text entry fields and selected taxonomy terms. By moderation, I mean administrative approval of the changes before they go live on the site. My preference would be for the old data to remain visible pending approval of the new data.

I hired a web development company to create a site that includes a directory, with the explicit instruction that moderation of directory data was necessary. They nonetheless set the site up such that the information is provided through fields on users' profile pages and did not incorporate any means of moderation.

I have seen a potential work-around that involves the installation of the Profile2 and Profile2 Moderation modules, but simply implementing those modules does not fix the problem and creating new profile pages would unfortunately risk breaking the site.

If you have any ideas, I would be very grateful to hear them.

  • Can you edit your question to explain what your specs about that "moderation" means to you. And also explain what you mean with "profile pages", like is it OK to assume that they are just user "entities", with "some" extra fields added to them. If so, what kind of fields. And if you say "certain fields", what kind of fields are they? Also, if a user EDITs some of the fields content you want to moderate, what should the (visible) field value be while the moderation process is ongoing (ie while it is not approved yet)). PS: Do you want another dozen of question to "gather your requirements"? Commented Apr 15, 2016 at 19:10

2 Answers 2


What I've done in a similar situation was this:

  1. Turn on moderation of users /admin/config/people/accounts ie:

    Who can register accounts?
    --> Visitors, but administrator approval is required
  2. Install Views Bulk Operations https://www.drupal.org/project/views_bulk_operations

  3. Create a view that shows the moderated users by default (but you can use an exposed filter to change this). Include the fields that you want the administrator to be able to see (your text entry and taxonomy referred to above). Set your view to the VBO options and enable the operations for approving (or blocking) users.

Hope this helps!

  • 1
    That seems like a reasonable way to monitor changes to the fields, but not to pre-moderate changes that a user makes to the fields after they complete the registration process. But as they say, every little bit helps.
    – Aaron
    Commented Apr 15, 2016 at 20:34

I suggest you try to use a combination of 2 approaches, as further detailed below.

Approach 1 - Prior approval required

The Profile 2 Moderation module, which depends on the Profile 2 module, enables moderation on user profiles. Here is a (self explaining?) screenprint from its project page.

enter image description here

Be aware however that, as mentioned on the project page, it requires a Profile revisions patch.

Disclaimer: I've never used this approach myself (yet ...), but worth invetigating!

Approach 2 - After the facts

Use the Rules module to be informed about all sorts of updates that you're interested in, similar to what's detailed in my answer to "How to send an eMail notification when a specific field of a node or user has been changed?".

With this approach, and as per all the great things you can do with this module, your options are virtually unlimited. This approach also allows you to implement this type of moderation using a granular approach: start small, maybe only using a few custom rules, and keep refining them and continue adding new ones.

Not to forget all the available integrations with tons of other modules, of which the Flag module is probably your very first priority to also add that module for what you're trying to implement. Just a basic usecase about this:

  • Use Rules to flag any user for which some profile update happened.
  • Use Views to build a list of such flagged users.

If you'd only implement these 2 bullets of this approach (a matter of minutes, say an hour at max), you'd already have a Version 1.0 of your User Profile Moderation Dashboard (call it your MVP if you prefer ...).

Approach 3 - Build your own spam filter

You could also use an approach/strategy similar to what I described in my answer to "How to use the Rules module to perform a simple anti-spam validation using specific keywords?", at least for anything that is text-field like. For those situations it would be an ongoing process to keep refining the various text strings you want to stop from being entered.

If you're not familiar with Rules, checkout the video tutorials Learn the Rules framework. And/or the similar set of 8 video tutorials about the Flag module.

  • Thanks for your suggestions. The Profile2 moderation activation has no effect on the data going immediately live. It is probably the case that if the site were build with those modules from the start, moderation would work. Unfortunately it was not. I may have to try to rework the site around those modules.... As for the second suggestion, that seems like a means of monitoring changes as opposed to moderating them, which would still leave me in the situation of having the data go live before it was moderated. Am I misunderstanding? Thanks.
    – Aaron
    Commented Apr 19, 2016 at 19:36
  • @Aaron You're correct in your understanding, but I just thought of yet another approach (= 3), which I just added to my answer. So while waiting for some day to implement approach 1, you could use approach 2 to get inspiration for all sorts of things you want to intercept with Approach 3. Commented Apr 19, 2016 at 20:07
  • I will likely have to take that sort of approach. Thank you for all of your ideas.
    – Aaron
    Commented Apr 21, 2016 at 13:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.