User profiles as nodes or not in Drupal

As I go through the lullabot podcasts one of them hit on a challenge I'm working on. I have a series of related sites and the need to have complex user profiles and different user profiles for different roles. There are several ways to do this with modules that make user profiles into full blown nodes. Then a little CCK/Views magic and life is very good. The problem is that then user profiles are nodes.

So you say that's what I wanted and in many ways it is but I want to do two things that the profile module does and don't work with profiles as nodes. First I want to share tables for profiles but not share a node table. Your identity is the same on the network of sites but the content is different on each site. Second I want the field-level access control that comes with profiles. The CCK table structure works much better for my needs as these are each 100-field profiles. It seems for the moment that short of rewriting the profile module, which the current timeline doesn't allow, I'll have to forgo the sharing of profile tables and disable search on the site overall (not a huge loss in this case) and then maybe take a look at the profile module. In the end I think we probably need profiles that are pseudo full nodes.

The solution might look something like this:

  • A profile_cck module that implements profiles as cck content types but instead of having content_type tables we'd have profile_type tables
  • Profiles have access to all the cck fields and types for building
  • Different content types can be created for different roles
  • Table sharing is possible if one wishes to share profiles and not share content
  • User profiles are not searched via the core search interface and security can continue to be much as it is today when it comes to profiles
  • Profile cck fields have the same (or similar) privacy options as the current profile module
  • A separate search module search_profile adds the available fields to core search for sites that want to search user profiles at the same time as content (possibly this is a setting in profile_cck but it seems like a separate module might be better and allow more customization of search

Now, if somebody would kindly invent the "extra hours in the day" module I'd like to get right on this one.

Category: 

3 Comments

Perhaps

Just a random idea... I don't know if tis would be easier, nor how large a task this would actually be or whether it would even be a better solution, but it's what occurred to me while reading your article, and trying to think of it as a general problem:

What about a module or core or CCK contribution that allows site admins to define what node types are shared and not between multi-sites. Keep all nodes in the node table, we don't want to mess about there, but make only node types A B C available on site1, and node types A D E available on site2. Such that site1 doesn't know about node types D E and site2 node types B C.

How about a database view?

If you're sharing between sites using tables,
How 'bout a DB view that'll expose only node of user profile type?
Sounds pretty simple to me...

Here is a thought, create CCK

Here is a thought, create CCK types for the content on each page. site one content types have a prefix of site1_ site two types have a prefix of site2_ etc... then uses Views filtering to keep content on the site its supposed to be on. You would then have separate content, plus the user account control you.

-=Daniel=-