this helps the admins to know whether a user has access to a particular list and what access.
This simply helps to know what a user can do in each list.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.SharePoint; namespace PermissionViewer { class Program { static void Main(string[] args) { //Get the site url Console.Write("Enter Site Url : "); string siteURL = Console.ReadLine(); //Get the user name of user Console.Write("Enter User Name : "); string UserName = Console.ReadLine(); try { //Get the sharepoint site using (SPSite sharepointSite = new SPSite(siteURL)) { //open the site using (SPWeb sharepointweb = sharepointSite.OpenWeb()) { //Get each and every list in sharepoint site foreach (SPList sharepointList in sharepointweb.Lists) { //Get roles assigned for each list foreach (SPRoleAssignment assignedRoles in sharepointList.RoleAssignments) { //Check whether the role if for a user if (assignedRoles.Member is SPUser) { //get the user from the role SPUser user = (SPUser)assignedRoles.Member; //Check whether its the same user that is entered if (user.Name.Equals(UserName, StringComparison.OrdinalIgnoreCase)) { //removes user //item.RoleAssignments.Remove(item1); //Get users permissions - Add Remove Etc foreach (SPRoleDefinition item in assignedRoles.RoleDefinitionBindings) { Console.WriteLine("List : " + sharepointList.Title + "\nAccess : " + item.Name + "\n"); } } } //Check whether the role is for a security group if (assignedRoles.Member is SPGroup) { //Get the security group SPGroup grp = (SPGroup)assignedRoles.Member; //Iterate members of the group foreach (SPUser groupMember in grp.Users) { //Check whether the user is the entered user if (groupMember.Name.Equals(UserName, StringComparison.OrdinalIgnoreCase)) { //Get users permissions - Add Remove Etc foreach (SPRoleDefinition item in assignedRoles.RoleDefinitionBindings) { Console.WriteLine("List : " + sharepointList.Title + "\nGroup : " + grp.Name + "\nAccess : " + item.Name + "\n"); } //uncomment if you want to remove a person from group //grp.RemoveUser(user1); } } } } } } } } catch (Exception Ex) { //Print if any exceptions occur Console.WriteLine("Error : "+Ex.Message); } //used make sure that the prompt is not closed Console.WriteLine("insert some value to exit"); Console.ReadLine(); } } }