Project Description
Apply an xml-template to a site to set up permissions for the site and its lists and items.
A typical scenario would be to use different security setups depending on the state of a project site.

You can in the xml template define users and groups to be added, removed or modified. You can associate groups with the site, create custom role definitions for the site and set up role assignments for all securable objects from SPWeb down to SPListItem level. You can use caml queries to get a collection of items to set up unique role assignments and you can copy role assignments from other securable objects and merge their role definitions if you like.

All free text attributes in the xml are localizable and you can use a dictionary to resolve values to make the template more dynamic and flexible. The xsd includes intellisence that describes most nodes, attributes and enum values.

A typical scenario would be to use this for projects that use different states.
A thing to note is that security is quite complex in SharePoint 2007. So to use this stuff it's recommended to have a more thorough look into the object model since the terminology in the template uses the same names, like RoleDefinitions instead of Permission Levels in the GUI and some stuff that isn't available in the GUI, like associations of groups in the SPWeb.AssociatedGroups.

In the Template.xsd file I've copied som stuff from the SharePoint xsd-files to get intellisence in the CAML queries, but I strongly recommend to download the CAML Intellisence project from http://code.msdn.microsoft.com/camlintellisense and make a reference to it in my xsd file.