diff options
Diffstat (limited to 'OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups')
-rw-r--r-- | OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs index 05223e0..1c791b9 100644 --- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs | |||
@@ -1231,36 +1231,20 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups | |||
1231 | List<GroupMembershipData> membershipData = m_groupData.GetAgentGroupMemberships(requestingClient.AgentId, dataForAgentID); | 1231 | List<GroupMembershipData> membershipData = m_groupData.GetAgentGroupMemberships(requestingClient.AgentId, dataForAgentID); |
1232 | GroupMembershipData[] membershipArray; | 1232 | GroupMembershipData[] membershipArray; |
1233 | 1233 | ||
1234 | // c_scene and property accessor 'is_god' are in support of the opertions to bypass 'hidden' group attributes for | 1234 | if (requestingClient.AgentId != dataForAgentID) |
1235 | // those with a GodLike aspect. | 1235 | { |
1236 | Scene c_scene = (Scene) requestingClient.Scene; | ||
1237 | bool is_god = c_scene.Permissions.IsGod(requestingClient.AgentId); | ||
1238 | |||
1239 | if(is_god) { | ||
1240 | Predicate<GroupMembershipData> showInProfile = delegate(GroupMembershipData membership) | 1236 | Predicate<GroupMembershipData> showInProfile = delegate(GroupMembershipData membership) |
1241 | { | 1237 | { |
1242 | return membership.ListInProfile; | 1238 | return membership.ListInProfile; |
1243 | }; | 1239 | }; |
1244 | 1240 | ||
1245 | membershipArray = membershipData.ToArray(); | 1241 | membershipArray = membershipData.FindAll(showInProfile).ToArray(); |
1246 | } | 1242 | } |
1247 | else | 1243 | else |
1248 | { | 1244 | { |
1249 | 1245 | membershipArray = membershipData.ToArray(); | |
1250 | if (requestingClient.AgentId != dataForAgentID) | ||
1251 | { | ||
1252 | Predicate<GroupMembershipData> showInProfile = delegate(GroupMembershipData membership) | ||
1253 | { | ||
1254 | return membership.ListInProfile; | ||
1255 | }; | ||
1256 | |||
1257 | membershipArray = membershipData.FindAll(showInProfile).ToArray(); | ||
1258 | } | ||
1259 | else | ||
1260 | { | ||
1261 | membershipArray = membershipData.ToArray(); | ||
1262 | } | ||
1263 | } | 1246 | } |
1247 | |||
1264 | if (m_debugEnabled) | 1248 | if (m_debugEnabled) |
1265 | { | 1249 | { |
1266 | m_log.InfoFormat("[GROUPS]: Get group membership information for {0} requested by {1}", dataForAgentID, requestingClient.AgentId); | 1250 | m_log.InfoFormat("[GROUPS]: Get group membership information for {0} requested by {1}", dataForAgentID, requestingClient.AgentId); |
@@ -1273,7 +1257,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups | |||
1273 | return membershipArray; | 1257 | return membershipArray; |
1274 | } | 1258 | } |
1275 | 1259 | ||
1276 | |||
1277 | private void SendAgentDataUpdate(IClientAPI remoteClient, UUID dataForAgentID, UUID activeGroupID, string activeGroupName, ulong activeGroupPowers, string activeGroupTitle) | 1260 | private void SendAgentDataUpdate(IClientAPI remoteClient, UUID dataForAgentID, UUID activeGroupID, string activeGroupName, ulong activeGroupPowers, string activeGroupTitle) |
1278 | { | 1261 | { |
1279 | if (m_debugEnabled) m_log.DebugFormat("[GROUPS]: {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name); | 1262 | if (m_debugEnabled) m_log.DebugFormat("[GROUPS]: {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name); |