Skip to main content

How to check user permissions for site using CSOM in SharePoint Online

In this article, we are going to learn, How to get the user permission on the site using csom or how to get the user permission programmatically, to get the permission of the user on a particular site we use GetUserEffectivePermissions() method in csom. In the SharePoint, user requires permission to perform any operation, when we work with provider-hosted add-ins and in some scenarios, we need to check the permission of user we use the GetUserEffectivePermissions() method and by passing the user name we get its effective permission on the site. 

In this example, We have created a console application to check whether the user have edit person or not on site. 

Pass the context of the site and email of the user into a method to check the permission of the user on the site. You must ensure users on the web before checking permission. 


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("*****");  
clientContext.Credentials = new SharePointOnlineCredentials("***@***.onmicrosoft.com", SecurePassword);  
bool hasPermission = CheckPermissionOnDocumentlibrary(clientContext, "[email protected]");  

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

 public static bool CheckPermissionOnDocumentlibrary(ClientContext clientContext, string userEmail)  
{  
 bool haspermission = false;  
 try  
{  
if (clientContext != null)  
{  
     Web web = clientContext.Web;  
     User user = web.EnsureUser(userEmail);  
     clientContext.Load(user);  
     clientContext.ExecuteQuery();  
    var permissions = web.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;  
 }  
}  

Comments

Popular posts from this blog

How to create list from template in sharepoint

In this article, we are going to learn how to create a list from list template or using(.stp) file or we can say create list from existing list. Once you save the list as a template, It appears into List template option under the web designer gallery on site setting page. Steps to create list from list template: 1 Move to the site setting section where you have saved the list template. 2. When you click on the List templates, you will redirect to the List template gallery and from the list template gallery. 3. Now click on the File in ribbon and click on the upload document. 4. Browse the location where your list template is downloaded. I am uploading the template of an address list. 5.  After browsing the template, now you can give the name what you want to give to the list template and click on save. 6. Now the list template file appears into the list template gallery. Now click on the gear  icon and click on the Add an app. 7. On clicking add an app,

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 optio

Save site as template option in sharepoint online

In this article, we are going to learn about "save site as template option missing in sharepoint". When  you want  to replicate a site that you have already created and for this, you have to save site as template.  For this,  you go  on  Site setting   and then   move to  Site  action   but you did not  find  the option “ Save site as template ” option.    There are several reasons behind the missing of "save site as template" option, to get this option check options below mention.   Custom script is not allowed  on tenant   On the new office 365 tenants or we say in Modern SharePoint experience by default the custom scripting is not allowed  on the tenant. If custom script is not allowed on your tenant some features will not work  o n your tenants. In common terms you may not able to  save site as template , options to create web part page will not appear on, some web parts  ( like media and content editor) will also not there.   How to