Try to filter the groups list returns for User A, when sending to User B, based on User A's preferences for ShowInProfile.
parent
247fdd1a4d
commit
3b511d5138
|
@ -1277,10 +1277,23 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
// to the core Groups Stub
|
// to the core Groups Stub
|
||||||
remoteClient.SendGroupMembership(new GroupMembershipData[0]);
|
remoteClient.SendGroupMembership(new GroupMembershipData[0]);
|
||||||
|
|
||||||
GroupMembershipData[] membershipData = m_groupData.GetAgentGroupMemberships(GetClientGroupRequestID(remoteClient), dataForAgentID).ToArray();
|
List<GroupMembershipData> membershipData = m_groupData.GetAgentGroupMemberships(GetClientGroupRequestID(remoteClient), dataForAgentID);
|
||||||
|
GroupMembershipData[] membershipArray;
|
||||||
|
|
||||||
SendGroupMembershipInfoViaCaps(remoteClient, dataForAgentID, membershipData);
|
if (remoteClient.AgentId != dataForAgentID)
|
||||||
remoteClient.SendAvatarGroupsReply(dataForAgentID, membershipData);
|
{
|
||||||
|
Predicate<GroupMembershipData> showInProfile = delegate(GroupMembershipData membership)
|
||||||
|
{
|
||||||
|
return membership.ListInProfile;
|
||||||
|
};
|
||||||
|
|
||||||
|
membershipArray = membershipData.FindAll(showInProfile).ToArray();
|
||||||
|
} else {
|
||||||
|
membershipArray = membershipData.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
SendGroupMembershipInfoViaCaps(remoteClient, dataForAgentID, membershipArray);
|
||||||
|
remoteClient.SendAvatarGroupsReply(dataForAgentID, membershipArray);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue