Last updated February 27, 2011. Created on February 20, 2008.
Edited by aspilicious, bekasu, obsidiandesign. Log in to edit this page.


The CCK Field Privacy module allows a user to determine whether a particular CCK field is viewable by (a) everyone, (b) Buddies, or (c) Nobody. This information, once stored, dynamically changes the display of a node with CCK fields based on the privacy settings of the user.

The goal of the CCK Field Privacy module is to enable an end user to restrict which personal information is displayed in profile nodes, such as nodeprofile. When editing a node in a content type with field privacy enabled, the user will see a padlock icon next to the title of any field that the administrator has enabled privacy for. By clicking the padlock, the user will be presented with a JQuery popup where the specific privacy setting can be chosen: everyone, buddies, or nobody.


Get the module from git or from the cck field privacy project page.

This module requires the buddylist.module, content.module, and jquery_impromptu.module. Enable these modules, then enable the cck_field_privacy.module. The next step is to select the content types on which privacy settings are allowed (Administer > Content Management > Content field privacy). Once one or more content types are enabled, each CCK field in the content type will be displayed. The administrator can allow privacy settings on any number of the CCK fields in the content type. The ability for users to edit privacy settings is enabled once the choices are saved by the administrator.


It would be important to mention that this permission is set for all those cck fields across multiple nodes. So you can't set permissions on a 'per node' basis.

Example: you can't use this if you want users to upload pictures (nodes) and have some pictures available for friends and other for everybody.


1. Gracefully degrade JQuery when Javascript support is not present in the user browser
2. Get the padlock to also appear on field group titles (fieldset legends), if selected.
3. Extend the module to work with User Relationships, Buddylist2, and other relationship modules (at the administrator's discretion).

Smullin Design

Bryan O'Shea and Mike Smullin

Looking for support? Visit the forums, or join #drupal-support in IRC.


jaochoo’s picture

You note the following:

It would be important to mention that this permission is set for all those cck fields across multiple nodes. So you can't set permissions on a 'per node' basis.

So how can it then be used for user profile privacy? Content Profile is the Content Type, one instance of (one particular user profile) is a node. Privacy is set "across multiple nodes", as you write, not on a "per node basis". So all nodes of type Content Profile (i.e. all user profiles) will be affected of the the privacy settings one particular user makes. Or am I missing something?

DrupalCuckoo’s picture


when I first read the description of this module I was very confused (probably like you now). But I gave it a try (Drupal 6.15 and User Relationship module). I've installed CCK Field Privacy and Jquery Impromptu (don't forget to download the javascript file seperatly), configured everything and it seems as it would work very well. Every user can set his own privacy settings.

But what I'm missing in this module is an indicator for the user to see which settings he chose without the need of clicking the lock symbol to get the js modal window. Can I use this module without javascript? Can I put the radio buttons (Eveyone, Buddies, Nobody) directly below each content field?

An other question is: when I created my user profile with content_profile.module I grouped the content fields in field groups. As long as I use field groups to group the content fields I can only change privacy settings for the entire field group and not for each content field separatly. At "admin/content/cck_field_privacy" I've selected my content type and set the checkboxes for content fields and for field groups. How can I use field groups AND change privacy settings for each content field?

Thanks for any help :)