How do I synchronize time zone information across SharePoint site collections?

We are creating a large installation of SharePoint 2007 with several hundred site collections across four regional web applications. We have about 12,000 users, which are distributed more or less evenly around the world, and each user can visit many site collections - both on their "home" regional server and on other regional servers.

My question is, how can we allow each user to set their time zone once, but allow the time zone to be synchronized with each site collection? Also, if a user moves from one time zone to another, how can we allow him / her to change the time zones and apply the changes across all site collections?

We've covered the following:

  • Write time zone records through the SharePoint API using a scheduled process. Awkward and Slow - We would prefer the changes take effect more quickly and our maintenance windows are already pretty small.

  • Place the trigger on a table that contains time zone information and use a .NET stored program to update through the SharePoint API. Definitely goes against SP best practices.

  • Create a workflow that allows a user to set their home time zone, and then iterate through site collections to set the appropriate time zone information. This seems to work for existing site collections, but new site collections will not receive customizations.

  • Store custom time zone in cookie; on the homepage, get the cookie and update the website's current timezone setting. May work, but our users can use multiple machines, and we won't have the overhead of doing this on every page load.

So in the end we are not sure which is the best option for us. Any thoughts would be appreciated.

+2


source to share


1 answer


I would suggest creating your cookie idea:

  • Store a custom time zone in your profile and provide an interface to change it.
  • On page load, if the timezone cookie does not exist, create one based on the user profile value.
  • Compare the cookie value with the timezone set in SPContext.Current.Web.CurrentUser

    and update accordingly.


Since the object SPUser

already exists and you can use cookies to avoid constantly looking up the profile value, the performance impact should be negligible. You can either add this logic to the master page or use a delegate control to insert a lightweight control (my preference).

+1


source







All Articles