public void TestNotEqualsDifferentAction() { GrouperDocumentMember member1 = TestHelpers.MakeMember(new { Action = GroupMemberActions.Include }); GrouperDocumentMember member2 = TestHelpers.MakeMember(new { Action = GroupMemberActions.Exclude }); Assert.False(member1.Equals(member2)); }
public void TestNotEqualsDifferentSource() { GrouperDocumentMember member1 = TestHelpers.MakeMember(new { Source = GroupMemberSources.Static }); GrouperDocumentMember member2 = TestHelpers.MakeMember(new { Source = GroupMemberSources.OnPremAdGroup }); Assert.False(member1.Equals(member2)); }
public void TestNotEqualsDifferentRule() { GrouperDocumentMember member1 = TestHelpers.MakeMember(new { Rules = new[] { new { Name = "Upn", Value = "Test" } } }); GrouperDocumentMember member2 = TestHelpers.MakeMember(new { Rules = new[] { new { Name = "Group", Value = "Test" } } }); Assert.False(member1.Equals(member2)); }
public void TestEquals() { GrouperDocumentMember member1 = TestHelpers.MakeMember(); GrouperDocumentMember member2 = TestHelpers.MakeMember(); Assert.True(member1.Equals(member2)); }
private IMemberSource GetMemberSource(GrouperDocumentMember member) { if (_memberSources.TryGetValue(member.Source, out IMemberSource source)) { return(source); } throw new InvalidOperationException($"There is no member source added for {member.Source}"); }
public void TestSerializeAction() { GrouperDocumentMember member = TestHelpers.MakeMember(); string json = JsonConvert.SerializeObject(member); dynamic obj = JObject.Parse(json); Assert.Equal(TestHelpers.DefaultGroupMemberAction.ToString(), (string)obj.action); }
public void TestSerializedNames() { GrouperDocumentMember member = TestHelpers.MakeMember(); string json = JsonConvert.SerializeObject(member); JObject obj = JObject.Parse(json); Assert.True(obj.ContainsKey("source")); Assert.True(obj.ContainsKey("action")); Assert.True(obj.ContainsKey("rules")); }
public async Task GetMembersFromSourceAsync(GroupMemberCollection memberCollection, GrouperDocumentMember grouperMember, GroupMemberTypes memberType) { if (memberType != GroupMemberTypes.AzureAd) { throw new ArgumentException("Invalid member type", nameof(memberType)); } await GetGroupMembersAsync( memberCollection, Guid.Parse(grouperMember.Rules.Where(r => r.Name.IEquals("Group")).First().Value) ); }
public void TestRulesListShouldBeImmutable() { GrouperDocumentMember member = TestHelpers.MakeMember(); Assert.Throws <NotSupportedException>(() => { member.Rules.RemoveAt(0); }); }
public void TestShouldSerializeMemberType() { GrouperDocumentMember member = TestHelpers.MakeMember(); Assert.False(member.ShouldSerializeMemberType()); }
private async Task GetMembersFromCustomViewAsync(GroupMemberCollection memberCollection, GrouperDocumentMember member) { await GetMembersAsync("dbo.spGrouperCustomView", member.MemberType, memberCollection, new Dictionary <string, object>() { { "view", member.Rules.Where(r => r.Name.IEquals("View")).First().Value } } ); }
private async Task GetMembersFromUpnAsync(GroupMemberCollection memberCollection, GrouperDocumentMember member) { await GetMembersAsync("dbo.spGrouperStaticMember", member.MemberType, memberCollection, new Dictionary <string, object>() { { "upn", member.Rules.Where(r => r.Name.IEquals("Upn") && !string.IsNullOrEmpty(r.Value)).Select(r => r.Value).ToArray() } } ); }
public async Task GetMembersFromSourceAsync(GroupMemberCollection memberCollection, GrouperDocumentMember grouperMember) { switch (grouperMember.Source) { case GroupMemberSources.Elevregister: await GetMembersFromElevregisterAsync(memberCollection, grouperMember); break; case GroupMemberSources.Personalsystem: await GetMembersFromPersonalsystemAsync(memberCollection, grouperMember); break; case GroupMemberSources.Static: await GetMembersFromUpnAsync(memberCollection, grouperMember); break; case GroupMemberSources.CustomView: await GetMembersFromCustomViewAsync(memberCollection, grouperMember); break; default: throw new ArgumentException(nameof(grouperMember)); } }
private async Task GetMembersFromElevregisterAsync(GroupMemberCollection memberCollection, GrouperDocumentMember member) { var arskurs = new List <string>(); bool elev = true; bool personal = true; string skolform = null; string enhet = null; string klass = null; string grupp = null; foreach (GrouperDocumentRule rule in member.Rules) { if (rule.Name.IEquals("Roll")) { if (rule.Value.IEquals("Elev")) { personal = false; } else if (rule.Value.IEquals("Personal")) { elev = false; } } else if (rule.Name.IEquals("Skolform")) { skolform = rule.Value.NullIfEmpty(); } else if (rule.Name.IEquals("Enhet")) { enhet = rule.Value.NullIfEmpty(); } else if (rule.Name.IEquals("Klass")) { klass = rule.Value.NullIfEmpty(); } else if (rule.Name.IEquals("Grupp")) { grupp = rule.Value.NullIfEmpty(); } else if (rule.Name.IEquals("Årskurs") && !string.IsNullOrEmpty(rule.Value)) { arskurs.Add(rule.Value); } } await GetMembersAsync("dbo.spGrouperElevregister", member.MemberType, memberCollection, new Dictionary <string, object>() { { "skolform", skolform }, { "enhet", enhet }, { "klass", klass }, { "grupp", grupp }, { "arskurs", arskurs.ToArray() }, { "elev", elev }, { "personal", personal } } ); }
public async Task GetMembersFromSourceAsync(GroupMemberCollection memberCollection, GrouperDocumentMember grouperMember) { await GetGroupMembersAsync( memberCollection, Guid.Parse(grouperMember.Rules.Where(r => r.Name.IEquals("Group")).First().Value) ); }
public async Task GetMembersFromSourceAsync(GroupMemberCollection memberCollection, GrouperDocumentMember grouperMember) { switch (grouperMember.Source) { case GroupMemberSources.OnPremAdGroup: await GetGroupMembersAsync( memberCollection, Guid.Parse(grouperMember.Rules.Where(r => r.Name.IEquals("Group")).First().Value) ); break; case GroupMemberSources.OnPremAdQuery: string filter = grouperMember.Rules.Where(r => r.Name.IEquals("LdapFilter")).FirstOrDefault()?.Value; string searchBase = grouperMember.Rules.Where(r => r.Name.IEquals("SearchBase")).FirstOrDefault()?.Value; QueryGroupMembers(memberCollection, filter, searchBase); break; default: throw new ArgumentException(nameof(grouperMember)); } }
private async Task GetMembersFromPersonalsystemAsync(GroupMemberCollection memberCollection, GrouperDocumentMember member) { var befattning = new List <string>(); string organisation = null; bool includeManager = false; foreach (GrouperDocumentRule rule in member.Rules) { if (rule.Name.IEquals("Organisation")) { organisation = rule.Value.NullIfEmpty(); } else if (rule.Name.IEquals("Befattning") && !string.IsNullOrEmpty(rule.Value)) { befattning.Add(rule.Value); } else if (rule.Name.IEquals("IncludeManager")) { includeManager = rule.Value.IEquals("true"); } } await GetMembersAsync("dbo.spGrouperPersonalsystem", member.MemberType, memberCollection, new Dictionary <string, object>() { { "organisation", organisation }, { "befattning", befattning.ToArray() }, { "include_manager", includeManager } } ); }