From c442ef346eee83320d92ebc829cf3dec7bd2ed98 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sun, 28 Jul 2013 16:44:31 -0700 Subject: Same issue as previous commit. --- OpenSim/Addons/Groups/GroupsMessagingModule.cs | 13 +++++-------- OpenSim/Addons/Groups/Service/GroupsService.cs | 18 ++++++++++++------ 2 files changed, 17 insertions(+), 14 deletions(-) (limited to 'OpenSim/Addons') diff --git a/OpenSim/Addons/Groups/GroupsMessagingModule.cs b/OpenSim/Addons/Groups/GroupsMessagingModule.cs index 3cece77..5de1fb4 100644 --- a/OpenSim/Addons/Groups/GroupsMessagingModule.cs +++ b/OpenSim/Addons/Groups/GroupsMessagingModule.cs @@ -246,7 +246,7 @@ namespace OpenSim.Groups public void SendMessageToGroup(GridInstantMessage im, UUID groupID) { UUID fromAgentID = new UUID(im.fromAgentID); - List groupMembers = m_groupData.GetGroupMembers(fromAgentID.ToString(), groupID); + List groupMembers = m_groupData.GetGroupMembers("all", groupID); int groupMembersCount = groupMembers.Count; PresenceInfo[] onlineAgents = null; @@ -403,15 +403,12 @@ namespace OpenSim.Groups Scene aScene = m_sceneList[0]; GridRegion regionOfOrigin = aScene.GridService.GetRegionByUUID(aScene.RegionInfo.ScopeID, regionID); - // Let's find out who sent it - string requestingAgent = m_UserManagement.GetUserUUI(new UUID(msg.fromAgentID)); - - List groupMembers = m_groupData.GetGroupMembers(requestingAgent, GroupID); + List groupMembers = m_groupData.GetGroupMembers("all", GroupID); List alreadySeen = new List(); - if (m_debugEnabled) - foreach (GroupMembersData m in groupMembers) - m_log.DebugFormat("[Groups.Messaging]: member {0}", m.AgentID); + //if (m_debugEnabled) + // foreach (GroupMembersData m in groupMembers) + // m_log.DebugFormat("[Groups.Messaging]: member {0}", m.AgentID); foreach (Scene s in m_sceneList) { diff --git a/OpenSim/Addons/Groups/Service/GroupsService.cs b/OpenSim/Addons/Groups/Service/GroupsService.cs index a2ef13a..24eb7f3 100644 --- a/OpenSim/Addons/Groups/Service/GroupsService.cs +++ b/OpenSim/Addons/Groups/Service/GroupsService.cs @@ -255,13 +255,19 @@ namespace OpenSim.Groups return members; List rolesList = new List(roles); - // Is the requester a member of the group? - bool isInGroup = false; - if (m_Database.RetrieveMember(GroupID, RequestingAgentID) != null) - isInGroup = true; + // Check visibility? + // When we don't want to check visibility, we pass it "all" as the requestingAgentID + bool checkVisibility = !RequestingAgentID.Equals("all"); + if (checkVisibility) + { + // Is the requester a member of the group? + bool isInGroup = false; + if (m_Database.RetrieveMember(GroupID, RequestingAgentID) != null) + isInGroup = true; - if (!isInGroup) // reduce the roles to the visible ones - rolesList = rolesList.FindAll(r => (UInt64.Parse(r.Data["Powers"]) & (ulong)GroupPowers.MemberVisible) != 0); + if (!isInGroup) // reduce the roles to the visible ones + rolesList = rolesList.FindAll(r => (UInt64.Parse(r.Data["Powers"]) & (ulong)GroupPowers.MemberVisible) != 0); + } MembershipData[] datas = m_Database.RetrieveMembers(GroupID); if (datas == null || (datas != null && datas.Length == 0)) -- cgit v1.1