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);
        }
Beispiel #2
0
        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)));
            }
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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;
        }
Beispiel #13
0
        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);
        }