public SharepointManager(IOptions <SharepointSettings> sharepointSettings) { var settingsVal = sharepointSettings.Value; _sharepointClientId = settingsVal.ClientId; _sharepointClientSecret = settingsVal.ClientSecret; _sharepointUrl = settingsVal.SharepointUrl; _authenticationManager = new PnP.Framework.AuthenticationManager(); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); string siteUrlKey = "siteUrl"; string siteUrl = null; if (req.Query.ContainsKey(siteUrlKey)) { siteUrl = req.Query[siteUrlKey].First(); } if (siteUrl == null) { return(new BadRequestObjectResult( "Please pass a site URL on the query string")); } var clientId = "c582d811-690b-4443-85bf-4a9c16f68006"; var tenantName = "robwindsor2"; var certName = "AzureFunctionAppTest.pfx"; var certPassword = "******"; var home = Environment.GetEnvironmentVariable("HOME"); var certPath = home != null? Path.Combine(home, @"site\wwwroot", certName) : Path.Combine(@"E:\Certs\" + certName); siteUrl = $"https://{tenantName}.sharepoint.com" + siteUrl; var listNames = new List <string>(); var authManager = new PnP.Framework.AuthenticationManager(clientId, certPath, certPassword, $"{tenantName}.onmicrosoft.com"); using (var context = authManager.GetContext(siteUrl)) { var query = context.Web.Lists.Where(l => l.Hidden == false) .OrderBy(l => l.Title); var lists = context.LoadQuery(query); context.ExecuteQuery(); foreach (var list in lists) { listNames.Add(list.Title); } } var responseContent = JsonConvert.SerializeObject( listNames, Formatting.Indented); return(new OkObjectResult(responseContent)); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); string siteUrlKey = "siteUrl"; string siteUrl = null; if (req.Query.ContainsKey(siteUrlKey)) { siteUrl = req.Query[siteUrlKey].First(); } if (siteUrl == null) { return(new BadRequestObjectResult( "Please pass a site URL on the query string " + "or in the request body")); } var clientId = "1d582c6c-9936-4393-9220-36823a23500b"; var clientSecret = "X3cMt-00Ju-WnX9n0e8wY.d7uLd4E~y9xy"; var tenantName = "robwindsor2"; var token = req.Headers["Authorization"].ToString().Remove(0, "Bearer ".Length); var userAssertion = new UserAssertion(token); siteUrl = $"https://{tenantName}.sharepoint.com" + siteUrl; var listNames = new List <string>(); var authManager = new PnP.Framework.AuthenticationManager(clientId, clientSecret, userAssertion); using (var context = authManager.GetContext(siteUrl)) { var query = context.Web.Lists.Where(l => l.Hidden == false) .OrderBy(l => l.Title); var lists = context.LoadQuery(query); context.ExecuteQuery(); foreach (var list in lists) { listNames.Add(list.Title); } } var responseContent = JsonConvert.SerializeObject( listNames, Formatting.Indented); return(new OkObjectResult(responseContent)); }
public SharepointManager(IOptions <SharepointSettings> sharepointSettings) { var settingsVal = sharepointSettings.Value; _azureAppId = settingsVal.AzureAppId; _sharepointUrl = settingsVal.SharepointUrl; SecureString securePassword = new SecureString(); foreach (char c in settingsVal.Password) { securePassword.AppendChar(c); } _authenticationManager = new PnP.Framework.AuthenticationManager(_azureAppId, settingsVal.Username, securePassword); }
/// <summary> /// Delete sharepoint list after each test if it was created. /// </summary> public void Dispose() { var spSettings = SharepointSettingsFromEnv(); using (var _authenticationManager = new PnP.Framework.AuthenticationManager()) { using (var context = _authenticationManager.GetACSAppOnlyContext(spSettings.SharepointUrl, spSettings.ClientId, spSettings.ClientSecret)) { var orcaSite = context.Web; if (orcaSite.ListExists(_listNameForTest)) { var list = orcaSite.Lists.GetByTitle(_listNameForTest); list.DeleteObject(); orcaSite.DeleteNavigationNode(_listNameForTest, string.Empty, PnP.Framework.Enums.NavigationType.QuickLaunch); context.ExecuteQuery(); } } } }
public void CreateListAndCheckRoleAssignmentsTest() { var sharepointManager = new SharepointManager(Options.Create(SharepointSettingsFromEnv())); var listToCreate = _listNameForTest; var description = "Sharepoint integration test 2 simple list."; string FIELD_XML_SCHEMA = $"<Field DisplayName='Default' Type='Text' Required='TRUE' />"; sharepointManager.CreateList(listToCreate, description, new List <string> { FIELD_XML_SCHEMA }); var spSettings = SharepointSettingsFromEnv(); using (var _authenticationManager = new PnP.Framework.AuthenticationManager()) { using (var context = _authenticationManager.GetACSAppOnlyContext(spSettings.SharepointUrl, spSettings.ClientId, spSettings.ClientSecret)) { var orcaSite = context.Web; Microsoft.SharePoint.Client.List createdList = orcaSite.Lists.GetByTitle(listToCreate); context.Load(createdList, x => x.HasUniqueRoleAssignments, y => y.RoleAssignments.Include(r => r.Member)); context.ExecuteQuery(); context.Load(orcaSite.AssociatedOwnerGroup, g => g.Id); context.ExecuteQuery(); bool isUniqueRoleAssignments = createdList.HasUniqueRoleAssignments; Assert.True(isUniqueRoleAssignments); int roleAssignmentsCount = createdList.RoleAssignments.Count; Assert.Equal(1, roleAssignmentsCount); var siteOwnerGroupId = orcaSite.AssociatedOwnerGroup.Id; foreach (var assignment in createdList.RoleAssignments) { var id = assignment.Member.Id; Assert.Equal(siteOwnerGroupId, id); } } } }