aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs27
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);