Skip to main content

How to check permissions of user on sharepoint list using csom.

In this article, we are going to learn "How to check the permissions of user on SharePoint list using csom " or permissions of user using code. In provider-hosted SharePoint Add-ins, we use the csom code and to check the permission of the user on a particular list, once we get the effective permission of particular user on the SharePoint list and then by using that permission we can check the particular kind of permission like Addlistitem, Editelistitem, etc.

In this example, we have created a console application to check whether the user has edit permission on the list or not.
 Pass the client context, email of the user and list name on which you want to check the permission of the user.



using System;

using System.Security;

using Microsoft.SharePoint.Client;

namespace PracticeCsom

{

    class Program

    {

        static void Main(string[] args)

        {
           string siteUrl = "https://***.sharepoint.com/sites/***/";
          using (ClientContext clientContext = new ClientContext(siteUrl))
         {
            SecureString SecurePassword = GetSecureString("Passwpord");
         clientContext.Credentials = new SharePointOnlineCredentials("****@****.onmicrosoft.com",           SecurePassword);
         bool hasPermission = CheckPermissionOnDocumentlibrary(clientContext,                 "*****@***.onmicrosoft.com", "metalist");

             if (hasPermission)
              {
                 Console.WriteLine("User have permission");
              }
           else
           {
              Console.WriteLine("User do not have permission on the list");
             }

            }

  }

 public static bool CheckPermissionOnDocumentlibrary(ClientContext clientContext, string userEmail, string listName)
{
      bool haspermission = false;
     try {
           if (clientContext != null)
            {
           
             Web web = clientContext.Web;
              List list = web.Lists.GetByTitle(listName);
             clientContext.Load(list);
             User user = web.EnsureUser(userEmail);
             clientContext.Load(user);
             clientContext.ExecuteQuery();
             var permissions = list.GetUserEffectivePermissions(user.LoginName);
             clientContext.ExecuteQuery();
            if (permissions.Value.Has(PermissionKind.AddListItems))
             {
                 haspermission = true;
              }
             }
        return haspermission;
       }
     catch (Exception ex)
     {
        return haspermission;
     }
 }

   private static SecureString GetSecureString(String Password)
  {
      SecureString oSecurePassword = new SecureString();
      foreach (Char c in Password.ToCharArray())
       {
         oSecurePassword.AppendChar(c);
       }
       return oSecurePassword;
   }
}
}


Copy the code and paste in your console application and you can copy the method and use it wherever you want either in provider-hosted add-in or in csom code.

Happy Coding

Comments

Popular posts from this blog

SharePoint Designer workflow error : server side activities have been updated. you need to restart sharepoint designer to use the updated version of activities.

While working with SharePoint designer at the time of creating custom forms and workflows, on editing the workflow or creating new one, error occurred and stated as :

"server side activities have been updated. you need to restart sharepoint designer to use the updated version of activities."

to resolve this error follow steps provided below.

Before moving on the steps mentioned below some time it's needed to clear the cache.

First clear the cache from locations mentioned below:
%APPDATA%\Microsoft\Web Server Extensions\Cache %APPDATA%\Microsoft\SharePoint Designer\ProxyAssemblyCache %USERPROFILE%\AppData\Local\Microsoft\WebsiteCache %APPDATA%\Microsoft\SharePoint Designer
Steps to resolve this problem:
To resolve this issue you need to update the SharePoint designer and to do so you have to follow this
two steps :

1. Check whether the Microsoft SharePoint 2013 service pack 1 is installed or not in your system.If not Please download it and install from URL mentioned below : 
F…

SharePoint user profile fields with their internal name.

We can update the SharePoint user profile fields manually or programmatically. Also using a power shell, we can update the user profile fields. For updating the SharePoint user profile field need to enable the Allow users to edit values for this property, SharePoint Admin can enable this property.

Display Name Actual NameType
IdUserProfile_GUIDUnique IdentifierSIDSIDbinaryActive Directory IdADGuidbinaryAccount nameAccountNamePersonFirst nameFirstNamestring single valuePhonetic First NameSPS-PhoneticFirstNamestring single value Last nameLastNamestring single valuePhonetic Last NameSPS-PhoneticLastNamestring single valueNamePreferredNamestring single valuePhonetic Display NameSPS-PhoneticDisplayNamestring single valueTitleTitlestring single valueManagerManagerPerson PicturePictureURLURLData sourceSPS-DataSourcestring single valueAbout MeAboutMeHTMLDepartmentDepartment‪string (Single Value)‬DepartmentSPS-Department‪string (Single Value)‬Quick linksQuickLinks‪string (Single Value)‬Web site…

Content editor web part missing in SharePoint/Modern SharePoint.

Media and content editor web part missing in SharePoint online. At Some Point, you need to add content editor web part into the modern site but the content editor web part did not appear on the page, to appear content editor web part on page you need to follow the below steps.
1 Log in as the SharePoint Global Administrator or SharePoint Administrator.
2.  Log in and navigate to your site collection ("https://xyz.sharepoint.com") and under the site settings activate the below features. Site settings – site features – SharePoint Server Publishing.Site Settings – Site Actions – Manage site features- SharePoint Server Publishing Infrastructure.             For this, you also need to enable Custom site scripts on your site collection(But In Modern SharePoint Its not recommended to enabling custom site scripting) For this go to the  SharePoint Admin center – Settings -  Classic settings page (option mentioned on page)- Scroll the page you found an option for the Custom Script.