Employee Directory using User Information List in SharePoint 2007

Recently I was asked to create an employee directory page on SharePoint 2007 intranet to display all the employee profiles in a single list, and make the list searchable.

Goals:

  1. Display a complete list of all Active Directory profiles imported by the SSP into SharePoint 2007.
  2. Display the following fields on the list: First Name, Last Name, Department, Job Function, Email Address, Photograph
  3. Allow the user to resort the list by First Name, Last Name, Department
  4. Allow searching of the list by First Name or Last Name
  5. Allow grouping of the list by Department
  6. Provide link to each employee’s person.aspx page display other details about the employee.

I found a hidden list in SharePoint 2007 called the “User Information List” which appeared to be exactly what I needed.   I was able to expose the User Access List by using SharePoint Designer to enable changing the permissions on this list.  This is done by opening the root of the site collection in SPD, navigating to the list name “User Information List” in the _catalogs folder, then right clicking the list to select the option for “Manage permissions using the browser”.   Then I was able to grant permission for all users to see this list.

Next I was able to customize the views in this list to allow the appropriate fields to be displayed, sorting to be specified and for a grouping by department.  This all seemed awesome and I was quick to show everybody how cool this new list I found was. 

Now here’s the rub; I noticed that the User Information List was not in sync with the profiles imported from Active Directory by the SSP.  After doing more research I realized that the User Information List is not tied to the profile database at all but is simply a listing of the users that have ever been granted access to the site collection.

What I learned:

  1. In MOSS 2007 the User Information List and the profile database (the one populated by SSP import) are independent and do not update each other upon changing.
  2. Each site collection has it’s own User Information List and the User Information List is populated at the time in which a user is first granted access to a site collection.  Andrew Connell (MVP) does an excellent job explaining more about this here.
  3. To create an accurate Employee Directory the best solution is to do one of the following:
    • Direct users to the built in People Search to lookup employees.
    • Create a custom web part that queries the profile database and displays the profiles in a list form.
    • Purchase a third-party web part like the ASI Advanced Employee Directory web part.
    • Purchase the User Sync Tool by Bamboo Solutions to keep the User Information List in sync with the profile database.
  4. There are some simple ways to add wildcard search functionality to the built-in MOSS People Search and use the People Search for the Employee Directory.

Additional Resources on this Topic:

I am the SharePoint Sherpa

My name is Scott Wheeler and I like to be know as the SharePoint Sherpa.  I am a SharePoint consultant in Dallas, Texas.  My specialty is SharePoint architecture, branding, and migration.

The word “sherpa” is defined as a highly regarded elite mountaineer and expert an in their local terrain, as well as having good physical endurance and resilience to high altitude conditions.  Because of my interest in the outdoors, endurancescott_headshot_250x250 sports as well as SharePoint, I like to call myself the SharePoint Sherpa.

I look forward to guiding you through the interesting and often exciting world of Microsoft SharePoint technologies.

Thank you for reading my blog and be sure to look for more posts on deploying, configuration, customizing and programming SharePoint.

If you would like to contact me about SharePoint projects feel free to reply to this post.