private IEnumerable <Auth0.Connection> GetConnections(string connectionType) { IEnumerable <Auth0.Connection> connections = null; try { if (string.IsNullOrEmpty(connectionType)) { // All connections connections = this.auth0Client.GetConnections(); } else if (connectionType.Equals(EnterpriseHierarchyNode, StringComparison.OrdinalIgnoreCase)) { connections = this.auth0Client.GetEnterpriseConnections(); } else if (connectionType.Equals(SocialHierarchyNode, StringComparison.OrdinalIgnoreCase)) { connections = this.auth0Client.GetSocialConnections(); } Auth0LoggingService.Write("GetConnections: Total connections {0}", connections != null ? connections.Count() : 0); } catch (Exception ex) { Auth0LoggingService.WriteError(ex.ToString()); } return(connections != null ? connections : new List <Auth0.Connection>()); }
protected virtual ICollection <ConsolidatedResult> ResolveInputBulk(string input, string selectedNode) { Auth0LoggingService.Write("ResolveInputBulk: input={0}, selectedNode={1}", input, selectedNode); if (string.IsNullOrEmpty(input)) { return(null); } if (this.auth0Client == null) { Auth0LoggingService.WriteError("Auth0 client was not initialized."); return(null); } IEnumerable <Auth0.User> users = null; var consolidatedResults = new Collection <ConsolidatedResult>(); try { Auth0LoggingService.Write("ResolveInputBulk: Searching for social and enterprise users."); var socialUsers = this.auth0Client.GetSocialUsers(input); var enterpriseUsers = this.auth0Client.GetEnterpriseUsers(input); // Distinct by user.Email users = socialUsers.Union(enterpriseUsers).DistinctBy(u => u.Email); // Log results. Auth0LoggingService.Write("ResolveInputBulk: Found {0}.", users != null ? users.Count() : 0); } catch (Exception ex) { Auth0LoggingService.WriteError(ex.ToString()); } if (users != null) { foreach (var user in users) { var claimAttribute = new ClaimAttribute { ClaimEntityType = SPClaimEntityTypes.User, PeoplePickerAttributeDisplayName = UsersNode, PeoplePickerAttributeHierarchyNodeId = UsersNode }; consolidatedResults.Add(new ConsolidatedResult { Attribute = claimAttribute, Auth0User = user, PickerEntity = this.GetPickerEntity(user, SPClaimEntityTypes.User) }); } } return(consolidatedResults); }
protected override void FillResolve(Uri context, string[] entityTypes, SPClaim resolveInput, List <PickerEntity> resolved) { Auth0LoggingService.Write("FillResolve input: {0}", resolveInput != null ? resolveInput.ClaimType + "/" + resolveInput.Value : "empty"); if (!this.SetSPTrustInCurrentContext(context)) { Auth0LoggingService.Write("FillResolve: SetSPTrustInCurrentContext=false."); return; } if (!String.Equals(resolveInput.OriginalIssuer, SPOriginalIssuers.Format(SPOriginalIssuerType.TrustedProvider, this.associatedSPTrustedLoginProvider.Name), StringComparison.OrdinalIgnoreCase)) { Auth0LoggingService.Write("FillResolve: Original issuers don't match, {0} != {1}.", resolveInput.OriginalIssuer, SPOriginalIssuers.Format(SPOriginalIssuerType.TrustedProvider, this.associatedSPTrustedLoginProvider.Name)); return; } SPSecurity.RunWithElevatedPrivileges(delegate { var input = resolveInput.Value.Contains(IdentifierValuesSeparator) ? resolveInput.Value.Split(IdentifierValuesSeparator)[1] : resolveInput.Value; var connectionName = resolveInput.Value.Contains(IdentifierValuesSeparator) ? resolveInput.Value.Split(IdentifierValuesSeparator)[0] : string.Empty; var consolidatedResults = this.ResolveInputBulk(input, connectionName); if (consolidatedResults != null && consolidatedResults.Count > 0) { resolved.Add(consolidatedResults.ElementAt(0).PickerEntity); return; } if (resolveInput.ClaimType == ConnectionClaimType) { var user = new Auth0.User { Identities = new List <Identity> { new Identity { Connection = resolveInput.Value } } }; resolved.Add(this.GetPickerEntity(user, SPClaimEntityTypes.FormsRole)); } else if (resolveInput.ClaimType == RoleClaimType) { resolved.Add(this.GetRolePickerEntity(resolveInput.Value)); } else if (this.alwaysResolveValue) { var user = new Auth0.User { Email = input, Name = string.Empty, Picture = string.Empty, Identities = new List <Identity> { new Identity { Connection = connectionName } } }; resolved.Add(this.GetPickerEntity(user, SPClaimEntityTypes.User)); } }); }