public ContextSimulator(IEnumerable<PermissionDescriptor> descriptors, IUser actualUser)
{
foreach (var descriptor in descriptors)
{
//load effected node
var node = Node.LoadNode(descriptor.AffectedPath);
//save the original value, before the modification
descriptor.OldValue = node.Security.GetPermission(descriptor.AffectedUser, descriptor.PType);
//set the new value
node.Security.SetPermission(descriptor.AffectedUser, true, descriptor.PType, descriptor.NewValue);
//save changes
node.Save();
}
_descriptors = descriptors;
AccessProvider.Current.SetCurrentUser(actualUser);
}