SiteData>GetListCollection for Permissions Dashboard

Dec 20, 2010 at 4:04 PM

Am interested if any work will be done to expand the current operations under SiteData to include GetListCollection?

I would like to produce a site permissions dashboard similar to Laura Rogers created here, but unfortunately work at a large company that does not embrace SharePoint Designer for the Business Area IT staff, only the corporate IT staff.  We do, however, embrace a resource center concept, and using spwebservices to mine information!!

Short of getting SPD, or having this operation included, is there any band-aid approach anyone can suggest - maybe vbs in a CEWP?

If anyone has any simple example (i.e. code that can go in a cewp to bring up a list of with Title, InheritedSecurity, and InternalName) that would be greatly appreciated!

Thanks!

Coordinator
Dec 20, 2010 at 4:07 PM

will266:

You should be able to use GetListCollection in the Lists Web Service. One of the reasons I haven't added more operations from the Site Data Web Service is that there is duplication with other Web Services.

M.

Dec 20, 2010 at 4:14 PM
Edited Dec 20, 2010 at 4:15 PM

I tried that, and while it offers up a wealth of information about the list, it does not seam to bring in the InheritedSecurity boolean field.  Did I miss something - I just ran it "wide open" and it brought back about 49 values for each list (sample from the xml below).  I had hoped the ReadSecurity or WriteSecurity values meant something, but they were the same for lists that inherited, and lists that did not.  Thanks for the rapid response!!

List
0 DocTemplateUrl 
1 DefaultViewUrl /sites/itbaet/Lists/VALUES IR Volts BAT/AllItems.aspx
2 MobileDefaultViewUrl 
3 ID {9C8844D2-686E-4018-B7B9-128F856F7F9D}
4 Title VALUES - I/R Volts (BAT)
5 Description The values in this list populate the values in the InfoPath Install Remove forms.
6 ImageUrl /_layouts/images/itgen.gif
7 Name {9C8844D2-686E-4018-B7B9-128F856F7F9D}
8 BaseType 0
9 FeatureId 00bfea71-de22-43b2-a848-c05709900100
10 ServerTemplate 100
11 Created 20100713 01:59:18
12 Modified 20100713 03:19:05
13 LastDeleted 20100713 01:59:18
14 Version 0
15 Direction none
16 ThumbnailSize 
17 WebImageWidth 
18 WebImageHeight 
19 Flags 536875008
20 ItemCount 13
21 AnonymousPermMask 0
22 RootFolder 
23 ReadSecurity 1
24 WriteSecurity 1
25 Author 15
26 EventSinkAssembly 
27 EventSinkClass 
28 EventSinkData 
29 EmailInsertsFolder 
30 EmailAlias 
31 WebFullUrl /sites/itbaet
32 WebId 1f0a5b97-a585-44dd-9412-9803f359db70
33 SendToLocation 
34 ScopeId 40acce01-5e51-4de5-ab35-8117f103567f
35 MajorVersionLimit 0
36 MajorWithMinorVersionsLimit 0
37 WorkFlowId 
38 HasUniqueScopes False
39 AllowDeletion True
40 AllowMultiResponses False
41 EnableAttachments True
42 EnableModeration False
43 EnableVersioning False
44 Hidden False
45 MultipleDataList False
46 Ordered False
47 ShowUser True
48 EnableMinorVersion False
49 RequireCheckout False

 

 

Coordinator
Dec 21, 2010 at 3:38 PM

Right you are. I just looked at what the GetListCollection operation of the SiteData Web Services returns, and there are a couple of useful attributes which aren't exposed by Lists.GetListCollection.

_sList
InternalName {29F0100D-C922-4573-BFFC-4525873444D4}
Title Announcements
Description Use the Announcements list to post messages on the home page of your site.
BaseType GenericList
BaseTemplate Announcements
DefaultViewUrl /Intranet/JQueryLib/Lists/Announcements/AllItems.aspx
LastModified 2010-01-19 13:18:59Z
InheritedSecurity true
AllowAnonymousAccess false
AnonymousViewListItems false
ReadSecurity 1

What version of SPServices are you using? I can give you a patched copy which includes this operation or you can wait until the next release.

M.

Dec 21, 2010 at 3:50 PM

We are using 0.5.8 and it is amazing the doors it has opened for us by way of enhanced functionality, with a minimal amount of "coding".

I would love to get a patched version if that is possible!! 

Thanks again for all the effort you have put into this!

w.

Coordinator
Dec 21, 2010 at 4:25 PM

w.

I've uploaded a patched version here. Note that you must call the SiteData GetListCollection as SiteDataGetListCollection because it duplicates the name of the GetListCollection operation in the Lists Web Service. Give it a whirl and let me know if you have any questions.

M.

Dec 21, 2010 at 4:27 PM

Man that was fast!

I will give her a go and let you know how it plays out!

Thanks again!

W.

Coordinator
Dec 21, 2010 at 4:29 PM

You bet!

M.

Dec 21, 2010 at 5:34 PM

The web service works great, but I am having a hard  time getting it onto my page - this is just a lack of js skills I am sure.

I have loaded this into a cewp, but get nothing returned to the web part page (I have no choice due to corp constraints but to use cewps).  I have insured that my calls to the two required js libraries is accurate, I just omitted them here for brevity.

this is likely a rookie mistake, as I am not sure how to simply bring it back to the page!

<SCRIPT type=text/javascript>
$(document).ready(function() {

 $().SPServices({
     operation: "SiteDataGetListCollection",

completefunc: function (xData, Status) {
   $("#WSOutput").html("").append("<b>This is the output from the SiteDataGetListCollection operation:</b>");
   $(xData.responseXML).find("_sList").each(function() {
   $("#WSOutput").append("<li>Title: " + $(this).attr("Title") + "</li>");
   $("#WSOutput").append("<li>URL: " + $(this).attr("DefaultViewUrl") + "</li>");
   $("#WSOutput").append("<li>Inherited Security: " + $(this).attr("InheritedSecurity") + "</li>");
   $("#WSOutput").append("<li>Type: " + $(this).attr("BaseType") + "</li>");
   $("#WSOutput").append("<li>Template: " + $(this).attr("BaseTemplate") + "</li>");
   $("#WSOutput").append("<li>List GUID: " + $(this).attr("InternalName") + "</li>");
   $("#WSOutput").append("<hr/>");
   });
  }
 });
});

</script>
Dec 21, 2010 at 7:36 PM
Edited Dec 21, 2010 at 7:51 PM

OK - here is an update.  Thanks so much for your patience/assistance/guidance!!

This seems to be golden!!

<SCRIPT type=text/javascript>

$(document).ready(function() {

waitMessage = "<table width='100%' align='center'><tr><td align='center'><img src='/_layouts/images/gears_an.gif'/></td></tr></table>";

$("#WSOutput").html(waitMessage).SPServices({
     operation: "SiteDataGetListCollection",
     completefunc: function (xData, Status) {
             $("#WSOutput").html("").append("<hr>");
             $(xData.responseXML).find("_sList").each(function() {
                $("#WSOutput").append("<li><b>Title: </b>" + $("Title",this).text() + "</li>");
                $("#WSOutput").append("<li>URL: " + $("DefaultViewUrl",this).text() + "</li>");
                $("#WSOutput").append("<li>Inherited Security: " + $("InheritedSecurity",this).text() + "</li>");
                $("#WSOutput").append("<li>Type: " + $("BaseType",this).text() + "</li>");
                $("#WSOutput").append("<li>Template: " + $("BaseTemplate",this).text() + "</li>");
                $("#WSOutput").append("<li>List GUID: " + $("InternalName",this).text() + "</li>");
                $("#WSOutput").append("<hr/>");
   });
  }
 });

});

</script>
<div id="WSOutput"></div>

 

Coordinator
Dec 21, 2010 at 9:00 PM

Excellent! Glad you worked it out while I was Christmas shopping. ;+)

M.