aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-01-31 22:54:36 +0000
committerJustin Clark-Casey (justincc)2011-01-31 22:54:36 +0000
commit0898be5750a9e5f0cfab566a34b65e4a227d82e6 (patch)
tree3e0c819d39753798bc1e3968ee5ed78976f91476
parentFlash out the prim count module (diff)
downloadopensim-SC_OLD-0898be5750a9e5f0cfab566a34b65e4a227d82e6.zip
opensim-SC_OLD-0898be5750a9e5f0cfab566a34b65e4a227d82e6.tar.gz
opensim-SC_OLD-0898be5750a9e5f0cfab566a34b65e4a227d82e6.tar.bz2
opensim-SC_OLD-0898be5750a9e5f0cfab566a34b65e4a227d82e6.tar.xz
Change SimianGroupsServicesConnectorModule.GetAgentGroupMembership() so that it returns null if the user isn't a member of the group.
This matches the behaviour of the same method for Flotsam Groups. This is the behaviour assumed by existing code. Method doc also added to IGroupsServicesConnector to the make the contract clear.
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupsServicesConnector.cs19
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/SimianGroupsServicesConnectorModule.cs66
2 files changed, 52 insertions, 33 deletions
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupsServicesConnector.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupsServicesConnector.cs
index 5c779de..6d26075 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupsServicesConnector.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupsServicesConnector.cs
@@ -63,7 +63,26 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
63 void SetAgentActiveGroupRole(UUID RequestingAgentID, UUID AgentID, UUID GroupID, UUID RoleID); 63 void SetAgentActiveGroupRole(UUID RequestingAgentID, UUID AgentID, UUID GroupID, UUID RoleID);
64 void SetAgentGroupInfo(UUID RequestingAgentID, UUID AgentID, UUID GroupID, bool AcceptNotices, bool ListInProfile); 64 void SetAgentGroupInfo(UUID RequestingAgentID, UUID AgentID, UUID GroupID, bool AcceptNotices, bool ListInProfile);
65 65
66 /// <summary>
67 /// Get information about a specific group to which the user belongs.
68 /// </summary>
69 /// <param name="RequestingAgentID">The agent requesting the information.</param>
70 /// <param name="AgentID">The agent requested.</param>
71 /// <param name="GroupID">The group requested.</param>
72 /// <returns>
73 /// If the user is a member of the group then the data structure is returned. If not, then null is returned.
74 /// </returns>
66 GroupMembershipData GetAgentGroupMembership(UUID RequestingAgentID, UUID AgentID, UUID GroupID); 75 GroupMembershipData GetAgentGroupMembership(UUID RequestingAgentID, UUID AgentID, UUID GroupID);
76
77 /// <summary>
78 /// Get information about the groups to which a user belongs.
79 /// </summary>
80 /// <param name="RequestingAgentID">The agent requesting the information.</param>
81 /// <param name="AgentID">The agent requested.</param>
82 /// <returns>
83 /// Information about the groups to which the user belongs. If the user belongs to no groups then an empty
84 /// list is returned.
85 /// </returns>
67 List<GroupMembershipData> GetAgentGroupMemberships(UUID RequestingAgentID, UUID AgentID); 86 List<GroupMembershipData> GetAgentGroupMemberships(UUID RequestingAgentID, UUID AgentID);
68 87
69 void AddGroupNotice(UUID RequestingAgentID, UUID groupID, UUID noticeID, string fromName, string subject, string message, byte[] binaryBucket); 88 void AddGroupNotice(UUID RequestingAgentID, UUID groupID, UUID noticeID, string fromName, string subject, string message, byte[] binaryBucket);
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/SimianGroupsServicesConnectorModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/SimianGroupsServicesConnectorModule.cs
index 0d265f2..81725c5 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/SimianGroupsServicesConnectorModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/SimianGroupsServicesConnectorModule.cs
@@ -704,7 +704,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
704 } 704 }
705 } 705 }
706 706
707
708 return findings; 707 return findings;
709 } 708 }
710 709
@@ -712,54 +711,55 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
712 { 711 {
713 if (m_debugEnabled) m_log.InfoFormat("[SIMIAN-GROUPS-CONNECTOR] {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name); 712 if (m_debugEnabled) m_log.InfoFormat("[SIMIAN-GROUPS-CONNECTOR] {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name);
714 713
715 GroupMembershipData data = new GroupMembershipData(); 714 GroupMembershipData data = null;
716 715 bool foundData = false;
717 ///////////////////////////////
718 // Agent Specific Information:
719 //
720 OSDMap UserActiveGroup;
721 if (SimianGetGenericEntry(agentID, "Group", "ActiveGroup", out UserActiveGroup))
722 {
723 data.Active = UserActiveGroup["GroupID"].AsUUID().Equals(groupID);
724 }
725 716
726 OSDMap UserGroupMemberInfo; 717 OSDMap UserGroupMemberInfo;
727 if (SimianGetGenericEntry(agentID, "GroupMember", groupID.ToString(), out UserGroupMemberInfo)) 718 if (SimianGetGenericEntry(agentID, "GroupMember", groupID.ToString(), out UserGroupMemberInfo))
728 { 719 {
720 data = new GroupMembershipData();
729 data.AcceptNotices = UserGroupMemberInfo["AcceptNotices"].AsBoolean(); 721 data.AcceptNotices = UserGroupMemberInfo["AcceptNotices"].AsBoolean();
730 data.Contribution = UserGroupMemberInfo["Contribution"].AsInteger(); 722 data.Contribution = UserGroupMemberInfo["Contribution"].AsInteger();
731 data.ListInProfile = UserGroupMemberInfo["ListInProfile"].AsBoolean(); 723 data.ListInProfile = UserGroupMemberInfo["ListInProfile"].AsBoolean();
732 data.ActiveRole = UserGroupMemberInfo["SelectedRoleID"].AsUUID(); 724 data.ActiveRole = UserGroupMemberInfo["SelectedRoleID"].AsUUID();
725
726 ///////////////////////////////
727 // Agent Specific Information:
728 //
729 OSDMap UserActiveGroup;
730 if (SimianGetGenericEntry(agentID, "Group", "ActiveGroup", out UserActiveGroup))
731 {
732 data.Active = UserActiveGroup["GroupID"].AsUUID().Equals(groupID);
733 }
733 734
734 /////////////////////////////// 735 ///////////////////////////////
735 // Role Specific Information: 736 // Role Specific Information:
736 // 737 //
737
738 OSDMap GroupRoleInfo; 738 OSDMap GroupRoleInfo;
739 if (SimianGetGenericEntry(groupID, "GroupRole", data.ActiveRole.ToString(), out GroupRoleInfo)) 739 if (SimianGetGenericEntry(groupID, "GroupRole", data.ActiveRole.ToString(), out GroupRoleInfo))
740 { 740 {
741 data.GroupTitle = GroupRoleInfo["Title"].AsString(); 741 data.GroupTitle = GroupRoleInfo["Title"].AsString();
742 data.GroupPowers = GroupRoleInfo["Powers"].AsULong(); 742 data.GroupPowers = GroupRoleInfo["Powers"].AsULong();
743 } 743 }
744 } 744
745 745 ///////////////////////////////
746 /////////////////////////////// 746 // Group Specific Information:
747 // Group Specific Information: 747 //
748 // 748 OSDMap GroupInfo;
749 OSDMap GroupInfo; 749 string GroupName;
750 string GroupName; 750 if (SimianGetFirstGenericEntry(groupID, "Group", out GroupName, out GroupInfo))
751 if (SimianGetFirstGenericEntry(groupID, "Group", out GroupName, out GroupInfo)) 751 {
752 { 752 data.GroupID = groupID;
753 data.GroupID = groupID; 753 data.AllowPublish = GroupInfo["AllowPublish"].AsBoolean();
754 data.AllowPublish = GroupInfo["AllowPublish"].AsBoolean(); 754 data.Charter = GroupInfo["Charter"].AsString();
755 data.Charter = GroupInfo["Charter"].AsString(); 755 data.FounderID = GroupInfo["FounderID"].AsUUID();
756 data.FounderID = GroupInfo["FounderID"].AsUUID(); 756 data.GroupName = GroupName;
757 data.GroupName = GroupName; 757 data.GroupPicture = GroupInfo["InsigniaID"].AsUUID();
758 data.GroupPicture = GroupInfo["InsigniaID"].AsUUID(); 758 data.MaturePublish = GroupInfo["MaturePublish"].AsBoolean();
759 data.MaturePublish = GroupInfo["MaturePublish"].AsBoolean(); 759 data.MembershipFee = GroupInfo["MembershipFee"].AsInteger();
760 data.MembershipFee = GroupInfo["MembershipFee"].AsInteger(); 760 data.OpenEnrollment = GroupInfo["OpenEnrollment"].AsBoolean();
761 data.OpenEnrollment = GroupInfo["OpenEnrollment"].AsBoolean(); 761 data.ShowInList = GroupInfo["ShowInList"].AsBoolean();
762 data.ShowInList = GroupInfo["ShowInList"].AsBoolean(); 762 }
763 } 763 }
764 764
765 return data; 765 return data;