Follow Jeff Sayre on Twitter

BuddyPress Privacy Component Released!


BuddyPress Privacy: For Your Eyes OnlyFinally, after many rumors, and fortunately little innuendo, the public Beta of my BuddyPress Privacy Component is ready!

This component is the first public Beta release. Please read the future.txt file that comes with the download package to learn about upcoming features and release dates. Instructions for installing and using the component can be found in the readme.txt file.

UPDATE (October 23, 2010): Please see this post for information on the release of the BuddyPress Privacy Component.

Click to see settings screen

Click to see settings screen

In the screen capture to the right, you can see one of the privacy setting screens. There are actually six user classification filters that can be chosen for each BP object. In this screen capture you will see the option, “Relationship Mapped.” This is no longer an option in the current version. Instead, it has been replaced with the option “Members of these Groups.” Although you can select that option, it currently does nothing. It will be implemented in Beta 2.

NOTE: Comments are now disabled for this post. Thanks to everyone who has tested and provided feedback.

The newest version of my plugin is not yet ready for WPMU 2.9.x or the newly-released BP 1.2. I will be releasing an updated version in the near future (2-6 weeks). Since there have been too many people attempting to use the current version of my plugin under WPMU 2.9.x and now even BP 1.2, I am removing the link to the download repository. Once the latest version is ready for BP 1.2, I’ll create a new post with a new download link. If you want to be notified when my new BuddyPress Privacy Component is released, I suggest that you follow me on Twitter so as to get notified as soon as it is ready.

Okay, enough said. You can download my BuddyPress Privacy Component here. Once it is close to ready for an official public release, I will upload it to my WordPress Plugin Repository account.

Installation Hint:

If you read the readme.txt file, you will see that it says, “copy bp-authz.php and /bp-authz/ into /wp-content/plugins/ and activate the plugin.” This means that you need to make sure that you have both the directory /bp-authz/ and the single file bp-authz.php in /wp-contents/plugins/. So, it should look like this:


That last file needs to be at the same level as the /bp-authz/ directory. So, instead of simply dragging the main package directory BPAz into plugins, you drag the contents into plugins instead, leaving out the BPAz directory.

Release Notes:

  • Requires at a minimum WPMU 2.8.4a and BuddyPress 1.1.1. Preferred environment is WPMU 2.8.6 and BuddyPress 1.1.3
  • Although this release is very stable for a beta version, since it is a pre-release version (Beta 1), it should not be used in production environment.
  • The component does not come with any theme files. It uses a few custom CSS selectors. If you are using a customized theme (i.e. not the BuddyPress default theme) you may need to adjust your theme’s CSS
  • There may be a few issues with filtering out activity stream items. I suspect that the activity object array structure changed in a minor way in BP 1.1.3 and I have not yet had time to see if that is the case.
  • Please provide any bug or usage requests in this thread

Do you like this plugin? How about showing your support? You can learn more about what it takes to build, maintain, extend, and support this plugin by reading my Do You Support BuddyPress Privacy post?

Article Comments

  1. Matt says:

    This is sweet! We’ve been looking to add this functionality to the CUNY Academic Commons, so thank you very much for your work.

  2. American Yak says:

    I’m very excited about this.

  3. Xevo says:

    Awesome, definately gonna try it out tomorrow.
    Btw, arent there “too much” options? 🙂

    • Jeff Sayre says:

      There can never be too many options!

      • Xevo says:

        For a admin or developer, no. But for an average user there can be too many.
        Probably gonna dig in your plugin and hide some stuff for the normal users.

        • Jeff Sayre says:

          A few Beta testers, including yourself and Jack below, have asked for an option that allows the Site Administrator to pre-select ACL levels. In essence, the Site Admin would simply turn off those options that he or she did not want to make available to users.

          I’ll see what I can do about this in the next release.

  4. Marc-Olivier says:

    Hello Jeff!
    Congratulations on this first public Beta release of your plug-in!! This is great news! It looks very promising! 🙂
    I just tried to install it, but unfortunately, I can’t get it to activate. I keep getting this error message:
    Warning: require(/home/experts/ [function.require]: failed to open stream: No such file or directory in /home/experts/ on line 121

    This is very weird, because the file is on the server. I also check your code, and it seems right. Dunno what I should do.

    I am running WPMU 2.8.6 and BuddyPress 1.1.3. If you have any suggestions, I would be glady appreciate!


    • Jeff Sayre says:


      You need to make sure that you have both the directory /bp-authz/ and the single file bp-authz.php in /wp-contents/plugins/. So, it should look like this:


      That last file needs to be at the same level as the /bp-authz/ directory. So, instead of simply dragging the main package directory BPAz into plugins, you drag the contents into plugins instead, leaving out the BPAz directory.

      It is a little confusing, but this is often the way 3rd-party BuddyPress plugins are packaged and installed—at least when developing with the BP skeleton component.

  5. mercime says:

    Jeff, thank you. Will be checking this out in a mirror install tomorrow.

  6. slaFFik says:

    That is great! I’ll translate it into Russian and will contact you via Twitter.

  7. slaFFik says:

    Translated your plugin. Found some issues:
    1) bp-authz-settings.php (518) – components names are not translatable, so in this line I have Blogs активность (1 Eng word and 1 Rus word).
    2) Userlist, All users, Loggen in users, Friends, Members of these group, These users only, Only me – not in __() – they can’t be included in pot file.

    • Jeff Sayre says:

      Nice catch!

      The BPAz levels are hard coded in an array. I forgot to make them translatable. I will start a bug list and add this to it.

  8. wemaflo says:

    Hey Jeff!

    Thanks for this Plugin! If you would publish a .pot file, I would translate your plugin into german.

    • Jeff Sayre says:

      Yes, I can include a .pot file. Once I’ve fixed the untranslatable text strings that slaFFik caught, and any major bugs, I’ll do that.

  9. bpisimone says:

    Hey there Jeff, thanks a lot for the plugin. Looks very promising after first tryouts. One thing I’d consider changing is:
    * Profile Privacy
    * Activity Privacy
    * Friends Privacy
    * Messaging Privacy
    * Blogs Privacy
    Removing all the “privacies” in the subtitles since that is just unnecessary and for people like me who have a horizontal nav, it’s virtually impossible to fit everything into the menu! Since we have the privacy already in the nav title there, it is not needed imho!

    • Jeff Sayre says:

      That’s an interesting point. Perhaps I’ll include an Admin-definable toggle that will show or remove the word “privacy.” I know that some people will want that word so that their users clearly understand the purpose of the menu tab.

  10. Paul Gibbs says:

    Hi Jeff

    Well done on getting a first release out the door. I’ve put it on one of my very low traffic/usage public BuddyPress sites and we have a small discussion thread going.

  11. Excellent work, thanks Jeff.

  12. […] Sayre hat nach längerer Ankündigung die “BuddyPress Privacy Component” in einer Beta-Version veröffentlicht. Nach der Installation des Plugins erlaubt es […]

  13. […] can download it at Jeff Sayre’s website. Installation instructions can be found in the readme.txt file as well as on the download […]

  14. Плагин: Настройка приватности BPAz beta1…

    Вышел плагин защиты собственных данных в социальной сети на BuddyPress!!! Отныне есть возможность (как и в любой уважающей себя соц.сети) указат……

  15. I was thinking about your plugin today and it occurred to me: will it render plugins that automate sitemap submissions useless?

    Those plugins, the most famous of which is the Google Sitemaps Generator (, submit an updated sitemap to each of the major search engines every time a post is published. Alerting the engines in this way increases your site’s search engine rankings.

    If your plugin allows some posts to be private, having the sitemap plugin automatically add them to the sitemap would be detrimental to the site’s ranking because the bots would arrive, licking their lips, but would be refused access to the freshly published post. The infuriated bots would probably shout a bit, kick over some pot plants and frighten the cat. Worst of all, the search engine would no longer consider the sitemap to be a reliable source.

    So, might there be some way for your plugin to instruct the sitemap plugin not to add private posts to the sitemap? Or would sitemap plugins already recognize and ignore the posts flagged as private by your plugin?

    BTW, I’m not even sure how many sitemap submission plugins work well with BuddyPress, this is just a thought that occurred to me today while I was walking, but it is a pretty important consideration, no doubt some such plugin will become one of the defaults we all use.

    • Jeff Sayre says:


      That’s an interesting thought. I’ll need to think about this a little and get back to you.

      • r-a-y says:

        I don’t even think any WP sitemap generator plugin offers support for BuddyPress yet, so I don’t think this is much of a priority at this point.

        I’m more worried about the upcoming activity commenting feature in BP 1.2.

        Jeff, have you tested your privacy component with BP trunk?

  16. Jack says:

    Be advised, “Members of these Groups” and “These Users Only” options aren’t functional.

    Members of these groups is merely selected then nothing happens… leaving you to wonder which groups, if any.

    These users only doesn’t autocomplete username, or, what would be most sensible, a list of names with check boxes for users. So right now, it’s not helpful.

    For simplicity, I’d like your help in omitting these two options from the plugin. If these two were left out, the component would be a great addon to my site.

    Thank you.

    • Jeff Sayre says:


      Correct, as I stated in my post above, the option “Members of these Groups” is not yet functional. However, the “These Users Only” option should be fully functional. For it to work, you must have javascript enabled in your browser—which is a good thing since BuddyPress relies heavily on JS.

      • Jack says:

        True. It is available, but one must manually type out all members names and do so accurately. Could you provide an alternate download file that omits those two so it reflects its current abilities? The plugin is written very, very well otherwise! Keep up the great work.

        • Jeff Sayre says:


          I guess I did not read properly read your previous comment.

          Just for clarification, the reason that I did not provide a list from which a user could choose is that some sites will have thousands of members. It would make it very difficult to navigate such a long list of names and check or select those that a user wished to add to the list. Also, since the “These Users Only” option is supposed to be the most restrictive filtering option before the “Only Me” option, it is anticipated that a user would only add a small number of usernames to the list.

          But, in thinking about your request and that of Xevo above, I believe that I could make an option for the Site Administrator to pre-select ACL levels. In essence, the Site Admin would simply turn off those options that he or she did not want to make available to users.

  17. David Carson says:

    This plugin is nothing short of amazing. Easy to install. Lots of configuration options. And it works exactly as expected. Kudos, Jeff!

    My only suggestion would be to give the admin the ability to control the default sitewide settings for each privacy control object on the bp-privacy-settings page while, at the same time, enabling or disabling user-configurable options on a per object basis.

    An admin might want to control all privacy controls for the site but give the user control to make their profile information public only, for instance. The admin would set the defaults for all privacy control objects and disable user configuration across the board, but then enable user configuration for the profile privacy controls only.

    I think this is the same type of functionality you are already working on (as mentioned in reply to Ajax) though so I’m not sure my suggestion is very useful.

  18. Jeff Sayre says:

    Thanks, David!

    Yes, your ideas are exactly what I’m planning on implementing in the next version or two. Although my plugin currently offers fine-grained control to users, it needs to offer more granular control to site owners as well.

    I think you will be mildly pleased with the new features—both for users and Site Admins—in the next release.

  19. r-a-y says:

    Hi Jeff, just tested the plugin.

    Everything is great so far.

    A couple of suggestions:
    – For those of us that manually output the xprofile field, could we have a template tag to return a boolean to check if a user has set an xprofile field as private?

    – Some UI feedback: Can I suggest moving the Privacy menu to a submenu of the “Settings” menu? The main account menu is getting too cluttered as it is.

    As well, could the various “[component] privacy” pages be sub-items, similar to how it is for different xprofile field groups on the “Edit profile” page?

    – A nice-to-have would be to include the auto-complete username feature for the “Userlist”. Definitely not a deal-breaker!

    Other than that and all the other suggestions from the others, this is indeed a much needed component. Thanks for putting in the time that you have to release this to the BP masses!

    • Jeff Sayre says:


      Thanks for the feedback and suggestions. A number of items you suggest are on my list to either implement or at least consider. Your input gives me more impetus to follow through on the “consider” list!

      I appreciate you taking the time to give my plugin a once over. I’m working on the next release which hopefully will be soon.

  20. mercime says:

    Jeff, thank you for the plugin. Adding “Privacy” after each BP component in Privacy Options certainly helped 3 test “non-techie” users set up their options easily. Somehow, they even got to understand more about the “sections” (components) of BP.

    Feature request: somewhat like dsader’s More Privacy Options plugin for WPMU where plugin
    adds three more levels of privacy to the Settings–>Privacy page. (replacing “Blog” with “All member components” – except Site Admin of course 🙂
    1. Blog visible to any logged in community member. ==== at least this one? 😉
    2. Blog visible only to registered users of blog.
    3. Blog visible only to administrators.

    Thank you again.

    • Jeff Sayre says:


      Thank you for the comments. I’m glad that your “non-techie” users caught on quick. As far as blog privacy levels go, in a future version of my component, Blogs and Groups privacy filtering will be made available.

  21. hi Jeff
    Thanks so much for this brilliant plugin.
    The plugin is awesome, I have been testing it on a demo install and almost all the features are working as expected. (Obviously except the profile privacy for group members, which you already mentioned is TO DO). I see almost everything is pointed by someone above my only one advise will be, why not make it easy for installing ,using plugin browsers.

    Only a few line of change will be required like this
    as a snippet here
    Instead of WP_PLUGIN_DIR , you can use BP_AUTHZ_PLUGIN_DIR, that way, It will be super easy for installing as (bp-authz.php,bp-authz directory can be under any parent directory, no need to upload them separately to the plugins directory) and also, if someone renames the parent directory, It will still work.

    Thanks again.

    • Jeff Sayre says:


      Thank you for testing my plugin and for your comments.

      If my plugin is not merged into BP core before its version 1.0 release, then I will alter the PLUGIN_DIR constant so that it can be installed using the plugin browser.

  22. […] This post was Twitted by jimgroom […]

  23. hi Jeff
    sorry for spamming you here.but I found something unexpected today on my test install and thought to let you know.

    as @Alexandr points above, the message sending button is disabled with privacy settings.
    I have made the privacyfor my admin acount that only my friends can send me the message.
    then I logged in as a member(test account, username:test123) which is not in my friend list and typed the url manually and I was able to send the message.
    here is what i did
    where “test123” is the user name of test account and admin account has privacy of not getting messages from non friends. Still admin account received the message from test , which is not a friend.

    hope you can replicate and see the behavior.
    The better option will be just displaying the message, you can not send message to this user or something similar I expect.

    • Jeff Sayre says:


      Nice catch!

      The messaging coding in BP is pretty complex and difficult to filter. What my code basically does is removes the “Send Message” button from the message object array. But, as you have discovered, it does not prevent a brute force, backdoor approach.

      I will take a look at this and see how I can intercept the messaging URI, filtering out any backdoor attempts at messaging a user if disallowed and redirecting them to an alternative screen.

  24. Arno Nel says:

    When is this being released?

    Want to use in production but im a little nervous 🙂

    • Jeff Sayre says:


      There are many changes to the BuddyPress codebase coming in version 1.2. Therefore, I’m holding off until that version is officially released to release version 1.0 of my BuddyPress Privacy Component.

      In the meantime, I plan on releasing a public gamma in a couple of weeks. It will include many of the tweaks discussed in this thread and a few more privacy options.

  25. Arno Nel says:

    Ok, would you mind sharing best case, worst case timing?
    Would help my planning

    Good work btw

    • Jeff Sayre says:

      I estimate that BuddyPress 1.2 will be released in 1 to 3 weeks. My gamma release (which will be 1.0-RC1) will be released somewhere within that timeframe. So, I estimate that my first official 1.0 release will come somewhere between 4 and 6 weeks from now. Of course, if BP 1.2 is pushed off longer than 3 weeks, then this schedule will obviously be shifted.

      I had hoped to have 1.0 out just after the start of the new year. But there are just too many changes being added on a daily and weekly basis to the BP 1.2 codebase. I need to wait until Andy has finalized everything before I can add new privacy features. I also will more than likely need to alter the functionality of some of the current privacy filters.

  26. Arno Nel says:

    ok, thanks Jeff. look forward to it

  27. mercime says:

    Hi Jeff. Feedback: I didn’t get a white screen at all when I upgraded BP to trunk but the Privacy Options plugin broke stopped working in BP trunk-r2167. In dashboard > BP > Privacy Options, link leads to 404 error page. In Member area, all Options > Privacy links redirect to members home page. Development site now on WPMU 2.9beta2 and BP trunk-r2205.

    Looking forward to 1.0-RC1 🙂

    • Jeff Sayre says:

      Yes, my Privacy Component will not work with the bleeding edge versions of WPMU or BP.

      There are so many changes occurring on an hourly basis in trunk (the upcoming BP 1.2), that I am holding off developing this plugin until after it is released. Well, that is not quite true, but you get the point.

      In a very real sense, my component is requiring a major overhaul in a few key places as a result of codebase changes in BuddyPress. Right now, I’m working on relatively simple things like user interface improvements, better Site Admin features and the like. But I’m putting off work on the real engine of the component—the privacy filtering code—until the dust has settled on BuddyPress version 1.2.

      I still do intend to release an RC (my gamma), unless Andy beats me to it and releases 1.2 before I can release my gamma version. But, the gamma version will just be a few minor bug fixes, a couple of new Site Admin features, and a better user interface design. It will only work with BP v1.1.3 and not with Trunk.

      • mercime says:

        Got it Jeff, will wait for the RC. I focus on the good news – there was no white screen of death with your current plugin when I upgraded to trunk 🙂 For that at the very least, thank you.

  28. American Yak says:

    AWESOME. Let me says it again, AWESOME plugin. When is Andy going to merge it with the trunk? 😀

    • Jeff Sayre says:

      There are no guarantees that my component will be merged with BP trunk. Andy has stated that he wants the community to test it fully before he makes any decisions. I’d suggest that you lobby Andy if you feel it is worthy of such accolades!

  29. Rone says:


    First and foremost, this is a great plugin and no doubt should be included in the bp-core.

    The only thing I would like to see is extending the privacy settings to govern photo albums. Of course this would require a BP plugin like “bpPicture Album” (which I am currently using and offering to my users) to be hooked into the core as well, but I think photos and personal pictures should be able to be just as “privatized” as text info.

    Happy New Year and again great Plugin.

  30. […] Privacy controls (try plugin: bp-authz) […]

  31. JermaineBelgardio says:


    first of all: Thank you for this great plugin. It’s an essential plugin for any BP-based community in Germany. 😉 It works fine in the frontend, but I can’t access the admin-settings. I receive a 404-error page and the url in my browser looks like this:


    Any idea how to fix this? I’m using WPMU and BP 1.1.3

    Thank you. 🙂

    • Jeff Sayre says:

      My guess is that it’s having an issue with WPMU The plugin is tested and supported up WPMU 2.8.6 and BuddyPress 1.1.3.

      I will have a newer version coming out in a couple of weeks after BuddyPress version 1.2 is released.

  32. I’m having the same issue as JermaineBelgardio. Is there a URL I can manually type in to get to the admin settings, or do they just not appear in WPMY ?

    • Jeff Sayre says:

      My BuddyPress Privacy Component will not work with WPMU 2.9.x. There are several issues, beyond the one you point out. So, even if you could access the privacy admin screen, you would find other issues.

      There are a large number of codebase changes that occurred in WP and BP that cause my plugin to malfunction. With the rapid development of WP and WPMU heading toward their merge, and the beneficial evolution of BP, this is to be expected.

      I suggest that you wait for the upcoming release of my next version. It will be compatible with the 2.9.x WP series. But, it will not be backwards compatible with the BP 1.1.x series. It will only work with the BP 1.2.x series.

  33. JP says:

    I don’t think your plugin works with BP 1.2.

    If you have an updated version or suggestions on how to ensure it installed/activated correctly, let me know. Thank you.

    • Jeff Sayre says:


      As stated in the post above:

      Preferred environment is WPMU 2.8.6 and BuddyPress 1.1.3

      My plugin is not yet ready for WPMU 2.9.x or the newly-released BP 1.2-beta. I will be releasing an updated version of my Privacy Component once the official, public version of BP 1.2 is released.

      • JP says:

        Do you know when that might be?

        • Jeff Sayre says:

          This is just pure speculation, but I’m guessing that a public, stable version of BP 1.2 will be released within 3 weeks or so. That means I will not be releasing a new version of my BuddyPress Privacy Component until just after that time. I need to fully test it against the stable BP 1.2 version before it goes out into the wild.

          • ubik says:

            thank’s for that!

            your plugin is what makes buddypress usable in the first place, so we won’t be updating until you are ready!
            not meant to put any preassure on you 😉

  34. Leandro says:

    Hello Jeff, you can’t modify this plugin for usage in buddypress 1.2?

    • Jeff Sayre says:

      I’m not exactly sure what you are asking? Have you read through the above comments?

      Are you asking if you personal can modify the code? Or, are you wondering why I cannot modify my existing plugin to work with BP 1.2?

      Either way, the issue is that there have been significant changes to the BuddyPress codebase that cause my plugin to malfunction. I am using my existing plugin version as a foundation for a new version that will function within BP 1.2. But, it is taking a lot of time as many of the functions in my plugin that used to work flawlessly under BP 1.1.x are now broken due to the changes that Andy and JJJ have implemented in BP 1.2.

      But, I will upgrade my plugin to work with BP 1.2 as I’ve stated a number of times above. Of course, you are also free to take my code–as it is GPLed–and code your own privacy plugin!

  35. […] Las funcionalidades básicas que le faltan a BuddyPress y que podemos implementarlas mediante plugins son: Protección Perfiles frente a no registrados: BuddyPress Privacy Component […]

  36. […] role based access rights is missing. It was on the roadmap for version 1.2 but is not available and Jeffs privacy component is not ready for version 1.2. He is waiting for the 1.2 public […]

  37. Patrick says:

    Hi Jeff!
    Oh goody! The pre-pre-final version of BP1.2 is available (BP1.2rc) so the official release isn’t far off. From what I gather from your posts above, your Privacy Component should follow shortly thereafter. I heartily agree with ubik that privacy options are essential in a social network.

    I’m also hoping that Marius finishes moving and renovating soon so he can have some time to “compatibilize” his bp-groupblogs plugin with BP1.2 too. Both your plugins together will make a formidable team!

  38. This looks like a great plugin.

    Do you have a timeframe for when it will be released to work with BP 1.2?

    • Jeff Sayre says:

      I do not have a definitive timeline. I’m currently overhauling the plugin, using BP 1.2RC. I have a ways yet to go. Once BP 1.2 has been officially released, then I will test it for at least a week before releasing.

  39. pjnu says:

    1.2 is out! Would love to try out the new privacy plugin. Thank you!

  40. Hi Jeff:

    Finally the Buddypress 1.2 stable has been released! Do you have any idea to release your plugin for the public.

    Waiting for the reply

  41. Jeff Sayre says:

    I’m still working out a number of issues with my plugin and the new release of BP 1.2 So, it will be awhile. I am not in a hurry as time spent on coding this plugin takes away time from my startup. But, I will finish the plugin and it will be released. If you want to be notified when it is released, I suggest that you follow me on Twitter so as you get notified when it is ready.

  42. […] role based access rights is missing. It was on the roadmap for version 1.2 but is not available and Jeffs privacy component is not ready for version 1.2. As the role and capability system of wordpress is designed for the […]

Share on Twitter
Share on Facebook
Share on FriendFeed
Share on LinkedIn
Share on StumbleUpon
Share on Digg
Share on Delicious
Share on Technorati
Add to Google Bookmarks