Follow Jeff Sayre on Twitter

BuddyPress Privacy: Moving Toward a Privacy API

By

BuddyPress development is moving toward a modular, team-focused approach. In my mind, this is the biggest news that came out of the weekly BuddyPress developers’ chat (you can read a succinct summary of the chat that DJPaul wrote up or you can read the entire chat-stream).

During the chat, Andy Peatling (lead BP developer and Automattic employee), presented an idea about breaking up development work into component teams:

I’d like to start breaking BP down into chunks, and find people that are really interested in specific features…so for example if you really love the activity stream functionality you could focus specifically on that, and stick to patching just this area…so the long term goal is to get teams on components and have that transition into core commit teams.

This has merit. As the complexity of the BuddyPress codebase expands, it will be increasingly difficult for a one- or two-person team to do all the core lifting. BuddyPress is a complex suite of plugins. It is a social-network-creating ecosystem full of hundreds of functions and classes. Breaking the workload into project teams is a sensible approach.

More Hands to Watch

But, this notion of modularizing BuddyPress core development made me realize that a single guy–that would be me–cannot effectively continue to maintain and update the BuddyPress Privacy Component. It is impractical.

As you already may know from my very successful fundraising drive for my BuddyPress Privacy Component, keeping the BP Privacy plugin up to snuff with each new release of BP is quite challenging. In effect, I have to be an expert on all the BuddyPress components.

If there will be project teams managing the future development of the BuddyPress suite of components, that means two things: 1) there will be too much information created by too many hands on which I need to stay caught up; 2.) there’s an opportunity to streamline privacy filtering.

Enter the BuddyPress Privacy API

Privacy should be a core feature of any social network. BuddyPress is no exception to this rule. So, I’m now thinking that the best approach to privacy in BuddyPress is via a Privacy Layer that provides a basic Privacy API which any and all components can access.

I’m now investigating how practical and possible it will be to create a Privacy Layer using my current privacy codebase. If it is something that can successfully be created without a significant amount of additional work, I will switch my efforts toward creating the BP Privacy Layer.

This means, that going forward, it will be up to each BuddyPress component development team to utilize the Privacy Layer (if they choose to), to tie their component into the Privacy API, and provide privacy filtering. That way, providing privacy will become a team effort and not just one guy playing catch up, running behind Andy, jjj, and all the component-team members who are furiously evolving the BuddyPress codebase.

Do you think a BuddyPress Privacy Layer is the best way to ensure that privacy becomes a core element of each component? Do you think a BuddyPress Privacy API is a desirable feature?

Article Comments

  1. Hi Jeff,

    I think that direction BP is taking is a good one. Your idea to write a security API to allow “3rd party” developers to hook into additional privacy features is an golden idea. It’s another step forward to create a piece of software that’s flexible and developer friendly. I’m not a programmer, but I do see the benefits of a standardized and organized workflow, and a well written API could provide that.

    Creating and extending a privacy API could be done by several people, and it could reduce the workload for you. So I see no reason why this could be a bad idea, and I certainly hope that you will go trough with setting this up. I also hope that you’re able to use your already written code, because you’ve put in so much time in it!

    Keep me/us updated, and maybe it’s good to talk about this in the next BP Dev chat to see what others think!

    • Jeff Sayre says:

      Bowe-

      Thanks for your thoughts.

      I thought a lot last night about how I might be able to repurpose my existing code to create a de facto BuddyPress Privacy API. I believe the best approach would be to split out the current component filtering functions into their own files. These would become, in essence, the privacy modules that each component team would then utilize and maintain. The basic core Privacy API, then, would be in a separate set of files.

      So, I would do the entire refactoring of the current privacy code and provide a version 1.0 working privacy system for BuddyPress. It would then be up to project teams to take their component’s privacy module and extended it how they see fit.

      Of course, this is be no means an official core component. That can only be decided by the BP core dev team. But, I think this approach could make privacy filtering easier for everyone, including 3rd-party plugin developers.

      • As a non-techie this makes perfect sense to me, and like I said earlier, the right approach.. time will tell if it will get picked up by the users or core developers (to be included in the core) but a social network needs good and flexible security options so I can’t imagine it NOT being adopter.

        It’ll be something like akismet but then for privacy instead of spam 😉

  2. Tom Ransom says:

    Makes sense to me.

    When I first picked up the current version of your plugin, I was looking for something that would allow me to “extend” a privacy class, register my objects, and then provide either provide callbacks for requests for my objects or output the specific language as needed when setting privacy.

  3. slaFFik says:

    Hi Jeff,
    Why not giving to BuddyPress Privacy Layer importance as BP-Core component has? That’s really useful and must-have for all networks.
    Then all other teams will work taking in account your layer.

    • Jeff Sayre says:

      I agree that privacy should be a core component. But, it is not up to me to make that decision. Hopefully, my Privacy Layer will be merged into core or some other privacy option made available.

  4. Danzig says:

    I want to create a theme (which I’ve done before) use Pods for the CMS and BuddyPress.

    With BuddyPress I want to have a member be able to login and place their business information. As a member they would have their own page to enter allowed business information that would update to a directory of businesses on the web site. Is there a plug-in or a tutorial that someone could point me to achieve this? Thank you in advance.

    Mr. Sayre, would your security plugin work for this setup?

  5. Jeff Sayre says:

    Danzig-

    You best bet is to post your question to the WPMU forums. Someone there will know whether or not a plugin exists that can help you achieve your goal.

    We regards to my BuddyPress Privacy Plugin working in that scenario, it is hard to say. However, if your solution is WPMU and not BuddyPress specific, then it is safe to say that the answer would be no.

  6. […] idea being that the Commons should be a one-stop-shop for everyone to be able to collaborate, while maintaining their own individual, and/or group’s privacy.  This is always a struggle when designing and developing a platform that incorporates different […]

  7. Hey Jeff,

    March 1st has come and gone. Any insights as to the status of BP Privacy?

    • Jeff Sayre says:

      Paul-

      Thanks for the comment. Privacy is finally coming along fine. The final issue now is with WPMU’s big merge with WordPress. WP 3.0 is currently expected to be released sometime between mid April and May 1.

      A few days ago, the core WP team announced the freeze of further enhancements in the WP 3.0 codebase. ( http://wpdevel.wordpress.com/2010/03/01/today-is-feature-freeze-noon-eastern-ti/ ). This means that I can now use the WP 3.0 trunk to finishing updating my BP Privacy Component.

      The past several months have seen a whirlwind of changes in BP and WP. It has been very difficult to develop a stable privacy plugin. Once one thing was fixed, another got broken by a change in either BP or WP. So, I decided that I had no choice but to wait for the WP 3.0 freeze. Now that that has occurred, I’m putting in the time to upgrade. So, it will be ready when WP 3.0 is officially released.

  8. qafro says:

    I think BuddyPress Privacy Layer is the best way to ensure that privacy would make user data safer & easy for future developments in privacy & plugins!

  9. Matt says:

    Having just set up buddypress, one feature I really need is:

    Individual component settings in the group. I want the group forum / blog / document etc to be private (hidden from non group members), but the main group members list to be shown.

    hope that makes sense!
    Many thanks!

Leave a Reply

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

Archives