SharePoint Search-based Solution to list all Sites a User has access to
Most SharePoint users want to have a list of all SharePoint sites they have permissions to access. This post describes how to achieve that without any programming, just configuration tasks.
Problem
When a user has a access to a lot of SharePoint Sites, it can become hard to remember the different URLs. The need for a central solution is often addressed to IT staff.
One option the users have is to “follow” the site, list or document so that they can find the content on their MySite. Another option is of course to have browser favorites.
Central Approach
If you want to provide a central solution for that, the search results Web Part is a good start.
All you have to do is to add a Search Results Web Part to the page where the list of SharePoint sites a user has access to should be displayed and configure it as described.
Change the query in the Web Part properties to:
contentclass:"STS_Site" contentclass:"STS_Web"
to list all webs.
If you want to limit the results to a specific Web Template, e.g. change the query to:
WebTemplate:"STS"
You can replace “STS” with your (own) Web Template. Also, you can specify more than one.
More Information
In order to get a list of all Web Template, simply run the following PowerShell command on a SharePoint Server:
Get-SPWebTemplate | sort -Property Name | ft -AutoSize
Note:
Remove the character ‘#’ and following numbers from the Name for the Query.
A good tool for getting a list of all the properties you can use in the Search Query is the SharePoint Search Query Tool.