I recently put together a web part to do this - basically, each SPList
in each SPWeb
on your site has a collection of SPRoleAssignment
objects, which define the permissions for that object. Within the SPRoleAssignment
, there is a collection of Member
objects, from which you can get the name of the user or group that has been assigned permission to this object. This allows you to get the permissions even if the list or folder is not inheriting from a parent. The Access Checker Web Part mentioned earlier does this, but it does not look at sub-folders, which may have their own permissions.
The bottom line is that if you have given users explicit permission to distinct folders, you will need to either build a solution to give you a run-down of the permissions, or click through every folder separately. There is no built-in functionality to display this quickly and simply.