Recently, we were asked to provide a mechanism on our intranet that will allow our users to fill out their profiles for others to see, search and make connections. Since our intranet is built using drupal, we set out to look for a way to see how this can be done. This post is an attempt to document our methodologies for setting this up.
The profile pages that we have built depend heavily upon the full featured user profile, authored by Michelle @ Shell Multimedia, with heavy modifications made to fit our needs. For example, our profiles do not feature buddylist, private message or guest book integration as Michelle’s write up does.
Features
The profile page building methodology we used has these features:
- Integrate profile pages with Active Directory and display basic AD addressbook information (Full Name, Title, Department, Email, TelephoneNumber)
- Provide a paginated list of all profiles with contact information
- Provide search functionality to search user profiles
Some screenshots of the final (though we always tweak this stuff..) profile pages are below:
Assumptions
- Based on Drupal 5.x
- Ldap_integration module is already installed, configured and is in use. At least, the ldapauth module. I will cover the ldapdata module configuration as part of this write up.
- One user gets exactly one profile.
- You know some php, enough to edit template files and fix them if you broke them.
Drupal Modules
You will need to install the following modules in your drupal installation. As I have said before, we have followed Michelle’s profile methodology and tweaked it as we went along. She has a very good description of what each module does to the profile, so having that write up handy will be invaluable. I will be refering to this write-up quite often throughout this document.
- Automatic Nodetitles
- CCK
- Link
- Node Profile
- Node Profile Bonus: Till this code is made part of the nodeprofile module, you can download this from Michelle’s Website
- Node Family
- Subform Element
- Token
- Usernode
- Views
- Computed Field
- Usernode












Great tutorial! Thanks for sharing. I was able to successfully duplicate your implementation for my needs with a few exceptions:
1) when creating the AD block view, I do not have an option to add the user ID field from the users as shown in your view. I do have, however, a user ID field from the usernode table.
2) I cannot seem to get the block to display as yours does, which might be due to the above.
Would you happen to know how I can fix these two issues?
Thanks again!!
Oh … and … where does the account_url come into play? I just noticed that if I try to edit a profile of a user when logged in as admin, it saves the node as admin profile (I assume because of the authoring info).
Nikkol
The account_url is used to provide links in the Searchable list of user profiles (Employee Directory).
Nikkol
Regarding your question about the AD block view, can you specify which step you are having this problem ? Did you try to import the code for the AD Block ?
[...] read more | digg story [...]
Thanks for the tutorial. I’m a little confused – is the data in active directory supposed to show up in the Employee Directory view automatically, or would each user have to create a uprofile first? I’m trying to display a phone book populated by AD info. Any advice appreciated. Thanks!
The AD data should show up as soon as the profile page is created. It pulls it automatically from Active Directory.
[...] Drupal Profiles with Active Directory Integration · Rajeev Karamchedu [...]
Can this be updated for Drupal 6?
Unfortunately, no. I do not have access to Drupal (nor Active Directory, for that matter).