public void RemoveAgentFromGroup(string RequestingAgentID, string AgentID, UUID GroupID) { if (m_log.IsDebugEnabled) { m_log.DebugFormat("{0} called", System.Reflection.MethodBase.GetCurrentMethod().Name); } string url = string.Empty, name = string.Empty; if (!IsLocal(GroupID, out url, out name) && url != string.Empty) { ExtendedGroupMembershipData membership = m_LocalGroupsConnector.GetAgentGroupMembership(AgentUUI(RequestingAgentID), AgentUUI(AgentID), GroupID); if (membership != null) { GroupsServiceHGConnector c = GetConnector(url); if (c != null) { c.RemoveAgentFromGroup(AgentUUIForOutside(AgentID), GroupID, membership.AccessToken); } } } // remove from local service m_LocalGroupsConnector.RemoveAgentFromGroup(AgentUUI(RequestingAgentID), AgentUUI(AgentID), GroupID); }
public List <GroupRolesData> GetGroupRoles(string RequestingAgentID, UUID groupID) { string url = string.Empty, gname = string.Empty; if (IsLocal(groupID, out url, out gname)) { return(m_LocalGroupsConnector.GetGroupRoles(AgentUUI(RequestingAgentID), groupID)); } else if (!string.IsNullOrEmpty(url)) { ExtendedGroupMembershipData membership = m_LocalGroupsConnector.GetAgentGroupMembership(RequestingAgentID, RequestingAgentID, groupID); string accessToken = string.Empty; if (membership != null) { accessToken = membership.AccessToken; } else { return(null); } GroupsServiceHGConnector c = GetConnector(url); if (c != null) { return(m_CacheWrapper.GetGroupRoles(RequestingAgentID, groupID, delegate { return c.GetGroupRoles(AgentUUIForOutside(RequestingAgentID), groupID, accessToken); })); } } return(new List <GroupRolesData>()); }
public static Dictionary <string, object> GroupMembershipData(ExtendedGroupMembershipData membership) { Dictionary <string, object> dict = new Dictionary <string, object>(); if (membership == null) { return(dict); } dict["AcceptNotices"] = membership.AcceptNotices.ToString(); dict["AccessToken"] = Sanitize(membership.AccessToken); dict["Active"] = membership.Active.ToString(); dict["ActiveRole"] = membership.ActiveRole.ToString(); dict["AllowPublish"] = membership.AllowPublish.ToString(); dict["Charter"] = Sanitize(membership.Charter); dict["Contribution"] = membership.Contribution.ToString(); dict["FounderID"] = membership.FounderID.ToString(); dict["GroupID"] = membership.GroupID.ToString(); dict["GroupName"] = Sanitize(membership.GroupName); dict["GroupPicture"] = membership.GroupPicture.ToString(); dict["GroupPowers"] = membership.GroupPowers.ToString(); dict["GroupTitle"] = Sanitize(membership.GroupTitle); dict["ListInProfile"] = membership.ListInProfile.ToString(); dict["MaturePublish"] = membership.MaturePublish.ToString(); dict["MembershipFee"] = membership.MembershipFee.ToString(); dict["OpenEnrollment"] = membership.OpenEnrollment.ToString(); dict["ShowInList"] = membership.ShowInList.ToString(); return(dict); }
private ExtendedGroupMembershipData GetAgentGroupMembership(string RequestingAgentID, string AgentID, UUID GroupID, MembershipData membership) { // 2. get the active group GroupData group = m_Database.RetrieveGroup(GroupID); if (group == null) { return(null); } // 3. get the membership info if we don't have it already if (membership == null) { membership = m_Database.RetrieveMember(group.GroupID, AgentID); if (membership == null) { return(null); } } // 4. get the active role UUID activeRoleID = new UUID(membership.Data["SelectedRoleID"]); RoleData role = m_Database.RetrieveRole(group.GroupID, activeRoleID); ExtendedGroupMembershipData data = new ExtendedGroupMembershipData(); data.AcceptNotices = membership.Data["AcceptNotices"] == "1" ? true : false; data.AccessToken = membership.Data["AccessToken"]; data.Active = true; data.ActiveRole = activeRoleID; data.AllowPublish = group.Data["AllowPublish"] == "1" ? true : false; data.Charter = group.Data["Charter"]; data.Contribution = Int32.Parse(membership.Data["Contribution"]); data.FounderID = new UUID(group.Data["FounderID"]); data.GroupID = new UUID(group.GroupID); data.GroupName = group.Data["Name"]; data.GroupPicture = new UUID(group.Data["InsigniaID"]); if (role != null) { data.GroupPowers = UInt64.Parse(role.Data["Powers"]); data.GroupTitle = role.Data["Title"]; } data.ListInProfile = membership.Data["ListInProfile"] == "1" ? true : false; data.MaturePublish = group.Data["MaturePublish"] == "1" ? true : false; data.MembershipFee = Int32.Parse(group.Data["MembershipFee"]); data.OpenEnrollment = group.Data["OpenEnrollment"] == "1" ? true : false; data.ShowInList = group.Data["ShowInList"] == "1" ? true : false; return(data); }
public ExtendedGroupRecord GetGroupRecord(string RequestingAgentID, UUID GroupID, string GroupName) { if (m_log.IsDebugEnabled) { m_log.DebugFormat("{0} called", System.Reflection.MethodBase.GetCurrentMethod().Name); } string url = string.Empty; string name = string.Empty; if (IsLocal(GroupID, out url, out name)) { return(m_LocalGroupsConnector.GetGroupRecord(AgentUUI(RequestingAgentID), GroupID, GroupName)); } else if (url != string.Empty) { ExtendedGroupMembershipData membership = m_LocalGroupsConnector.GetAgentGroupMembership(RequestingAgentID, RequestingAgentID, GroupID); string accessToken = string.Empty; if (membership != null) { accessToken = membership.AccessToken; } else { return(null); } GroupsServiceHGConnector c = GetConnector(url); if (c != null) { ExtendedGroupRecord grec = m_CacheWrapper.GetGroupRecord(RequestingAgentID, GroupID, GroupName, delegate { return(c.GetGroupRecord(AgentUUIForOutside(RequestingAgentID), GroupID, GroupName, accessToken)); }); if (grec != null) { ImportForeigner(grec.FounderUUI); } return(grec); } } return(null); }
byte[] HandleSetActive(Dictionary <string, object> request) { Dictionary <string, object> result = new Dictionary <string, object>(); if (!request.ContainsKey("RequestingAgentID") || !request.ContainsKey("GroupID") || !request.ContainsKey("AgentID") || !request.ContainsKey("OP")) { NullResult(result, "Bad network data"); string xmlString = ServerUtils.BuildXmlResponse(result); return(Util.UTF8NoBomEncoding.GetBytes(xmlString)); } else { string op = request["OP"].ToString(); if (op == "GROUP") { ExtendedGroupMembershipData group = m_GroupsService.SetAgentActiveGroup(request["RequestingAgentID"].ToString(), request["AgentID"].ToString(), new UUID(request["GroupID"].ToString())); if (group == null) { NullResult(result, "Internal error"); } else { result["RESULT"] = GroupsDataUtils.GroupMembershipData(group); } string xmlString = ServerUtils.BuildXmlResponse(result); //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); return(Util.UTF8NoBomEncoding.GetBytes(xmlString)); } else if (op == "ROLE" && request.ContainsKey("RoleID")) { m_GroupsService.SetAgentActiveGroupRole(request["RequestingAgentID"].ToString(), request["AgentID"].ToString(), new UUID(request["GroupID"].ToString()), new UUID(request["RoleID"].ToString())); result["RESULT"] = "true"; } return(Util.UTF8NoBomEncoding.GetBytes(ServerUtils.BuildXmlResponse(result))); } }
public void RemoveAgentFromGroup(string RequestingAgentID, string AgentID, UUID GroupID) { string url = string.Empty, name = string.Empty; if (!IsLocal(GroupID, out url, out name) && url != string.Empty) { ExtendedGroupMembershipData membership = m_LocalGroupsConnector.GetAgentGroupMembership(AgentUUI(RequestingAgentID), AgentUUI(AgentID), GroupID); if (membership != null) { GroupsServiceHGConnector c = GetConnector(url); if (c != null) { c.RemoveAgentFromGroup(AgentUUIForOutside(AgentID), GroupID, membership.AccessToken); } } } // remove from local service m_LocalGroupsConnector.RemoveAgentFromGroup(AgentUUI(RequestingAgentID), AgentUUI(AgentID), GroupID); }
public ExtendedGroupRecord GetGroupRecord(string RequestingAgentID, UUID GroupID, string GroupName) { string url = string.Empty; string name = string.Empty; if (IsLocal(GroupID, out url, out name)) { return(m_LocalGroupsConnector.GetGroupRecord(AgentUUI(RequestingAgentID), GroupID, GroupName)); } else if (url != string.Empty) { ExtendedGroupMembershipData membership = m_LocalGroupsConnector.GetAgentGroupMembership(RequestingAgentID, RequestingAgentID, GroupID); string accessToken = string.Empty; if (membership != null) { accessToken = membership.AccessToken; } else { return(null); } GroupsServiceHGConnector c = GetConnector(url); if (c != null) { ExtendedGroupRecord grec = m_CacheWrapper.GetGroupRecord(RequestingAgentID, GroupID, GroupName, delegate { return(c.GetGroupRecord(AgentUUIForOutside(RequestingAgentID), GroupID, GroupName, accessToken)); }); if (grec != null) { ImportForeigner(grec.FounderUUI); } return(grec); } } return(null); }
public List <GroupRoleMembersData> GetGroupRoleMembers(string RequestingAgentID, UUID groupID) { if (m_log.IsDebugEnabled) { m_log.DebugFormat("{0} called", System.Reflection.MethodBase.GetCurrentMethod().Name); } string url = string.Empty, gname = string.Empty; if (IsLocal(groupID, out url, out gname)) { return(m_LocalGroupsConnector.GetGroupRoleMembers(AgentUUI(RequestingAgentID), groupID)); } else if (!string.IsNullOrEmpty(url)) { ExtendedGroupMembershipData membership = m_LocalGroupsConnector.GetAgentGroupMembership(RequestingAgentID, RequestingAgentID, groupID); string accessToken = string.Empty; if (membership != null) { accessToken = membership.AccessToken; } else { return(null); } GroupsServiceHGConnector c = GetConnector(url); if (c != null) { return(m_CacheWrapper.GetGroupRoleMembers(RequestingAgentID, groupID, delegate { return c.GetGroupRoleMembers(AgentUUIForOutside(RequestingAgentID), groupID, accessToken); })); } } return(new List <GroupRoleMembersData>()); }
byte[] HandleGetMembership(Dictionary <string, object> request) { Dictionary <string, object> result = new Dictionary <string, object>(); if (!request.ContainsKey("RequestingAgentID") || !request.ContainsKey("AgentID")) { NullResult(result, "Bad network data"); } else { string agentID = request["AgentID"].ToString(); UUID groupID = UUID.Zero; if (request.ContainsKey("GroupID")) { groupID = new UUID(request["GroupID"].ToString()); } string requestingAgentID = request["RequestingAgentID"].ToString(); bool all = request.ContainsKey("ALL"); if (!all) { ExtendedGroupMembershipData membership = null; if (groupID == UUID.Zero) { membership = m_GroupsService.GetAgentActiveMembership(requestingAgentID, agentID); } else { membership = m_GroupsService.GetAgentGroupMembership(requestingAgentID, agentID, groupID); } if (membership == null) { NullResult(result, "No such membership"); } else { result["RESULT"] = GroupsDataUtils.GroupMembershipData(membership); } } else { List <GroupMembershipData> memberships = m_GroupsService.GetAgentGroupMemberships(requestingAgentID, agentID); if (memberships == null || (memberships != null && memberships.Count == 0)) { NullResult(result, "No memberships"); } else { Dictionary <string, object> dict = new Dictionary <string, object>(); int i = 0; foreach (GroupMembershipData m in memberships) { dict["m-" + i++] = GroupsDataUtils.GroupMembershipData((ExtendedGroupMembershipData)m); } result["RESULT"] = dict; } } } string xmlString = ServerUtils.BuildXmlResponse(result); //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); return(Util.UTF8NoBomEncoding.GetBytes(xmlString)); }
public static ExtendedGroupMembershipData GroupMembershipData(Dictionary<string, object> dict) { if (dict == null) return null; ExtendedGroupMembershipData membership = new ExtendedGroupMembershipData(); if (dict.ContainsKey("AcceptNotices") && dict["AcceptNotices"] != null) membership.AcceptNotices = bool.Parse(dict["AcceptNotices"].ToString()); if (dict.ContainsKey("AccessToken") && dict["AccessToken"] != null) membership.AccessToken = dict["AccessToken"].ToString(); else membership.AccessToken = string.Empty; if (dict.ContainsKey("Active") && dict["Active"] != null) membership.Active = bool.Parse(dict["Active"].ToString()); if (dict.ContainsKey("ActiveRole") && dict["ActiveRole"] != null) membership.ActiveRole = UUID.Parse(dict["ActiveRole"].ToString()); if (dict.ContainsKey("AllowPublish") && dict["AllowPublish"] != null) membership.AllowPublish = bool.Parse(dict["AllowPublish"].ToString()); if (dict.ContainsKey("Charter") && dict["Charter"] != null) membership.Charter = dict["Charter"].ToString(); else membership.Charter = string.Empty; if (dict.ContainsKey("Contribution") && dict["Contribution"] != null) membership.Contribution = Int32.Parse(dict["Contribution"].ToString()); if (dict.ContainsKey("FounderID") && dict["FounderID"] != null) membership.FounderID = UUID.Parse(dict["FounderID"].ToString()); if (dict.ContainsKey("GroupID") && dict["GroupID"] != null) membership.GroupID = UUID.Parse(dict["GroupID"].ToString()); if (dict.ContainsKey("GroupName") && dict["GroupName"] != null) membership.GroupName = dict["GroupName"].ToString(); else membership.GroupName = string.Empty; if (dict.ContainsKey("GroupPicture") && dict["GroupPicture"] != null) membership.GroupPicture = UUID.Parse(dict["GroupPicture"].ToString()); if (dict.ContainsKey("GroupPowers") && dict["GroupPowers"] != null) membership.GroupPowers = UInt64.Parse(dict["GroupPowers"].ToString()); if (dict.ContainsKey("GroupTitle") && dict["GroupTitle"] != null) membership.GroupTitle = dict["GroupTitle"].ToString(); else membership.GroupTitle = string.Empty; if (dict.ContainsKey("ListInProfile") && dict["ListInProfile"] != null) membership.ListInProfile = bool.Parse(dict["ListInProfile"].ToString()); if (dict.ContainsKey("MaturePublish") && dict["MaturePublish"] != null) membership.MaturePublish = bool.Parse(dict["MaturePublish"].ToString()); if (dict.ContainsKey("MembershipFee") && dict["MembershipFee"] != null) membership.MembershipFee = Int32.Parse(dict["MembershipFee"].ToString()); if (dict.ContainsKey("OpenEnrollment") && dict["OpenEnrollment"] != null) membership.OpenEnrollment = bool.Parse(dict["OpenEnrollment"].ToString()); if (dict.ContainsKey("ShowInList") && dict["ShowInList"] != null) membership.ShowInList = bool.Parse(dict["ShowInList"].ToString()); return membership; }
public static Dictionary<string, object> GroupMembershipData(ExtendedGroupMembershipData membership) { Dictionary<string, object> dict = new Dictionary<string, object>(); if (membership == null) return dict; dict["AcceptNotices"] = membership.AcceptNotices.ToString(); dict["AccessToken"] = Sanitize(membership.AccessToken); dict["Active"] = membership.Active.ToString(); dict["ActiveRole"] = membership.ActiveRole.ToString(); dict["AllowPublish"] = membership.AllowPublish.ToString(); dict["Charter"] = Sanitize(membership.Charter); dict["Contribution"] = membership.Contribution.ToString(); dict["FounderID"] = membership.FounderID.ToString(); dict["GroupID"] = membership.GroupID.ToString(); dict["GroupName"] = Sanitize(membership.GroupName); dict["GroupPicture"] = membership.GroupPicture.ToString(); dict["GroupPowers"] = membership.GroupPowers.ToString(); dict["GroupTitle"] = Sanitize(membership.GroupTitle); dict["ListInProfile"] = membership.ListInProfile.ToString(); dict["MaturePublish"] = membership.MaturePublish.ToString(); dict["MembershipFee"] = membership.MembershipFee.ToString(); dict["OpenEnrollment"] = membership.OpenEnrollment.ToString(); dict["ShowInList"] = membership.ShowInList.ToString(); return dict; }
private ExtendedGroupMembershipData GetAgentGroupMembership(string RequestingAgentID, string AgentID, UUID GroupID, MembershipData membership) { // 2. get the active group GroupData group = m_Database.RetrieveGroup(GroupID); if (group == null) return null; // 3. get the membership info if we don't have it already if (membership == null) { membership = m_Database.RetrieveMember(group.GroupID, AgentID); if (membership == null) return null; } // 4. get the active role UUID activeRoleID = new UUID(membership.Data["SelectedRoleID"]); RoleData role = m_Database.RetrieveRole(group.GroupID, activeRoleID); ExtendedGroupMembershipData data = new ExtendedGroupMembershipData(); data.AcceptNotices = membership.Data["AcceptNotices"] == "1" ? true : false; data.AccessToken = membership.Data["AccessToken"]; data.Active = true; data.ActiveRole = activeRoleID; data.AllowPublish = group.Data["AllowPublish"] == "1" ? true : false; data.Charter = group.Data["Charter"]; data.Contribution = Int32.Parse(membership.Data["Contribution"]); data.FounderID = new UUID(group.Data["FounderID"]); data.GroupID = new UUID(group.GroupID); data.GroupName = group.Data["Name"]; data.GroupPicture = new UUID(group.Data["InsigniaID"]); if (role != null) { data.GroupPowers = UInt64.Parse(role.Data["Powers"]); data.GroupTitle = role.Data["Title"]; } data.ListInProfile = membership.Data["ListInProfile"] == "1" ? true : false; data.MaturePublish = group.Data["MaturePublish"] == "1" ? true : false; data.MembershipFee = Int32.Parse(group.Data["MembershipFee"]); data.OpenEnrollment = group.Data["OpenEnrollment"] == "1" ? true : false; data.ShowInList = group.Data["ShowInList"] == "1" ? true : false; return data; }
public static ExtendedGroupMembershipData GroupMembershipData(Dictionary <string, object> dict) { if (dict == null) { return(null); } ExtendedGroupMembershipData membership = new ExtendedGroupMembershipData(); if (dict.ContainsKey("AcceptNotices") && dict["AcceptNotices"] != null) { membership.AcceptNotices = bool.Parse(dict["AcceptNotices"].ToString()); } if (dict.ContainsKey("AccessToken") && dict["AccessToken"] != null) { membership.AccessToken = dict["AccessToken"].ToString(); } else { membership.AccessToken = string.Empty; } if (dict.ContainsKey("Active") && dict["Active"] != null) { membership.Active = bool.Parse(dict["Active"].ToString()); } if (dict.ContainsKey("ActiveRole") && dict["ActiveRole"] != null) { membership.ActiveRole = UUID.Parse(dict["ActiveRole"].ToString()); } if (dict.ContainsKey("AllowPublish") && dict["AllowPublish"] != null) { membership.AllowPublish = bool.Parse(dict["AllowPublish"].ToString()); } if (dict.ContainsKey("Charter") && dict["Charter"] != null) { membership.Charter = dict["Charter"].ToString(); } else { membership.Charter = string.Empty; } if (dict.ContainsKey("Contribution") && dict["Contribution"] != null) { membership.Contribution = Int32.Parse(dict["Contribution"].ToString()); } if (dict.ContainsKey("FounderID") && dict["FounderID"] != null) { membership.FounderID = UUID.Parse(dict["FounderID"].ToString()); } if (dict.ContainsKey("GroupID") && dict["GroupID"] != null) { membership.GroupID = UUID.Parse(dict["GroupID"].ToString()); } if (dict.ContainsKey("GroupName") && dict["GroupName"] != null) { membership.GroupName = dict["GroupName"].ToString(); } else { membership.GroupName = string.Empty; } if (dict.ContainsKey("GroupPicture") && dict["GroupPicture"] != null) { membership.GroupPicture = UUID.Parse(dict["GroupPicture"].ToString()); } if (dict.ContainsKey("GroupPowers") && dict["GroupPowers"] != null) { membership.GroupPowers = UInt64.Parse(dict["GroupPowers"].ToString()); } if (dict.ContainsKey("GroupTitle") && dict["GroupTitle"] != null) { membership.GroupTitle = dict["GroupTitle"].ToString(); } else { membership.GroupTitle = string.Empty; } if (dict.ContainsKey("ListInProfile") && dict["ListInProfile"] != null) { membership.ListInProfile = bool.Parse(dict["ListInProfile"].ToString()); } if (dict.ContainsKey("MaturePublish") && dict["MaturePublish"] != null) { membership.MaturePublish = bool.Parse(dict["MaturePublish"].ToString()); } if (dict.ContainsKey("MembershipFee") && dict["MembershipFee"] != null) { membership.MembershipFee = Int32.Parse(dict["MembershipFee"].ToString()); } if (dict.ContainsKey("OpenEnrollment") && dict["OpenEnrollment"] != null) { membership.OpenEnrollment = bool.Parse(dict["OpenEnrollment"].ToString()); } if (dict.ContainsKey("ShowInList") && dict["ShowInList"] != null) { membership.ShowInList = bool.Parse(dict["ShowInList"].ToString()); } return(membership); }