aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Addons/Groups/GroupsMessagingModule.cs22
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 =>