Monthly Archives: July 2010

SP 2010 CQWP, Document Libraries and Anonymous Users

Important update:  Waldek Mastykarz has posted a workaround here: http://blog.mastykarz.nl/inconvenient-sharepoint-2010-content-query-web-part-anonymous-access/.
</end update>

This week, my team and I were upgrading a customer’s public internet site from MOSS to SP 2010.  The MOSS site uses the CQWP in several places.

We went through a very detailed procedure to ensure accuracy, quality and all that good stuff.  Despite that, we ran into a problem in the 11th hour that we didn’t expect or uncover until very late.  Specifically, our CQWP wouldn’t render for anonymous users.  It rendered find for the authors (who were logged in), but it wouldn’t show the content for anonymous users.

We did a lot of research and these are the parameters and actions we took to isolate the behavior:

  • CQWP would render fine when it was pulling content from a custom list.
  • CQWP would render content from the /Pages library.
  • It would not render content from /SiteCollectionImages
  • We created a new document library and uploaded a few docs to it.  We did not add any content types to the library – this was a simple out of the box doc lib with no customization.  Existing CQWP could not read from it.
  • We created a new page and added a CQWP to it using all default values.  it would not render for anonymous.
  • We (somewhat hastily) set up a new SP 2010 environment, straight out of the box again and replicated this behavior.

Bottom line, it appears that CQWP in SP2010 can’t render content for anonymous users when the data source is a document library.  Can this be true?

This is the error that we saw in the logs:

Web Part title: Content Query Web Part 653d91fb-2f83-4e6a-83af-1f39e8939f0a
07/30/2010 12:03:56.90  w3wp.exe (0x0F30)                        0x1540 SharePoint Foundation          Web Parts                      89a1 High     Error while executing web part: System.NullReferenceException: Object reference not set to an instance of an object.     at Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.SetDocumentIconUrlAndOnClickString(SPWeb web, DataRow row, String strDefaultItemOpen, Boolean fSetDocIcon, Boolean fSetOnClick, String fileRefColumnRef, String progIdColumnRef, String fsobjTypeColumnRef, String permMaskColumnRef)     at Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.PreProcessForDocumentIconAndOnClickAttribute()     at Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.AddContentQueryData()     at Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart.GetXPathNavigator(String viewPath)     at Microsoft.SharePoint.WebPartPages.DataFormWebPart…. 653d91fb-2f83-4e6a-83af-1f39e8939f0a

It just seems kind of impossible that CQWP wouldn’t work for anonymous users.  If you know any more about this, please post a comment.

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

Take Control of your OK and Cancel Buttons

I wrote this article a while back, but looks like I didn’t link to it from my blog at the time, so here goes:

image

This article describes how to force newform.aspx to redirect to one page when the user clicks OK and a different page when she clicks cancel.

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

Create, Update and Delete Patterns with SPD Workflow

I recently wrote an article for the good people at ShaerPointBriefing.com on a general pattern for implemented CRUD in SharePoint Designer.  Here’s a teaser:

image

Full article here:  http://sharepointbriefing.com/features/article.php/3889486/Create-Update-Delete-Patterns-with-SharePoint-Designer-Workflow.htm

Check it out!

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin