diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Addons/Groups/GroupsMessagingModule.cs | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/OpenSim/Addons/Groups/GroupsMessagingModule.cs b/OpenSim/Addons/Groups/GroupsMessagingModule.cs index ce4f597..3cece77 100644 --- a/OpenSim/Addons/Groups/GroupsMessagingModule.cs +++ b/OpenSim/Addons/Groups/GroupsMessagingModule.cs | |||
@@ -52,7 +52,7 @@ namespace OpenSim.Groups | |||
52 | private IPresenceService m_presenceService; | 52 | private IPresenceService m_presenceService; |
53 | 53 | ||
54 | private IMessageTransferModule m_msgTransferModule = null; | 54 | private IMessageTransferModule m_msgTransferModule = null; |
55 | 55 | private IUserManagement m_UserManagement = null; | |
56 | private IGroupsServicesConnector m_groupData = null; | 56 | private IGroupsServicesConnector m_groupData = null; |
57 | 57 | ||
58 | // Config Options | 58 | // Config Options |
@@ -162,6 +162,17 @@ namespace OpenSim.Groups | |||
162 | return; | 162 | return; |
163 | } | 163 | } |
164 | 164 | ||
165 | m_UserManagement = scene.RequestModuleInterface<IUserManagement>(); | ||
166 | |||
167 | // No groups module, no groups messaging | ||
168 | if (m_UserManagement == null) | ||
169 | { | ||
170 | m_log.Error("[Groups.Messaging]: Could not get IUserManagement, GroupsMessagingModule is now disabled."); | ||
171 | RemoveRegion(scene); | ||
172 | return; | ||
173 | } | ||
174 | |||
175 | |||
165 | if (m_presenceService == null) | 176 | if (m_presenceService == null) |
166 | m_presenceService = scene.PresenceService; | 177 | m_presenceService = scene.PresenceService; |
167 | 178 | ||
@@ -392,9 +403,16 @@ namespace OpenSim.Groups | |||
392 | Scene aScene = m_sceneList[0]; | 403 | Scene aScene = m_sceneList[0]; |
393 | GridRegion regionOfOrigin = aScene.GridService.GetRegionByUUID(aScene.RegionInfo.ScopeID, regionID); | 404 | GridRegion regionOfOrigin = aScene.GridService.GetRegionByUUID(aScene.RegionInfo.ScopeID, regionID); |
394 | 405 | ||
395 | List<GroupMembersData> groupMembers = m_groupData.GetGroupMembers(new UUID(msg.fromAgentID).ToString(), GroupID); | 406 | // Let's find out who sent it |
407 | string requestingAgent = m_UserManagement.GetUserUUI(new UUID(msg.fromAgentID)); | ||
408 | |||
409 | List<GroupMembersData> groupMembers = m_groupData.GetGroupMembers(requestingAgent, GroupID); | ||
396 | List<UUID> alreadySeen = new List<UUID>(); | 410 | List<UUID> alreadySeen = new List<UUID>(); |
397 | 411 | ||
412 | if (m_debugEnabled) | ||
413 | foreach (GroupMembersData m in groupMembers) | ||
414 | m_log.DebugFormat("[Groups.Messaging]: member {0}", m.AgentID); | ||
415 | |||
398 | foreach (Scene s in m_sceneList) | 416 | foreach (Scene s in m_sceneList) |
399 | { | 417 | { |
400 | s.ForEachScenePresence(sp => | 418 | s.ForEachScenePresence(sp => |