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:
- Display a complete list of all Active Directory profiles imported by the SSP into SharePoint 2007.
- Display the following fields on the list: First Name, Last Name, Department, Job Function, Email Address, Photograph
- Allow the user to resort the list by First Name, Last Name, Department
- Allow searching of the list by First Name or Last Name
- Allow grouping of the list by Department
- 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:
- 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.
- 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.
- 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.
- 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:
- How to Build a SharePoint 2007 Employee Directory Web Part
- How to Extend Wildcard People Search on MOSS 2007
- Interesting nuances about SharePoint’s (SPS-WSS) User Information list & (SPS) Profile Database by Andrew Connell
- How to make SIMPLE.aspx page in _catalogs/users list viewable (MOSS)
Filed under: Intranets, MOSS 2007, SharePoint 2007 | 2 Comments »