Esempio n. 1
0
        public string SendUserReport(string request, string path,
                                     string param, IOSHttpRequest httpRequest,
                                     IOSHttpResponse httpResponse, Caps caps)
        {
            httpResponse.StatusCode  = (int)System.Net.HttpStatusCode.OK;
            httpResponse.ContentType = "text/html";

            OSDMap response = new OSDMap();

            OSDMap map = (OSDMap)OSDParser.DeserializeLLSDXml(request);

            AbuseReportData abuse_report = AbuseReportDataFromOSD(map);

            abuse_report.SenderID        = caps.AgentID;
            abuse_report.SenderName      = m_UserManager.GetUserName(caps.AgentID);
            abuse_report.AbuseRegionID   = m_Scene.RegionInfo.RegionID;
            abuse_report.AbuseRegionName = m_Scene.RegionInfo.RegionName;
            abuse_report.AbuserName      = m_UserManager.GetUserName(abuse_report.AbuserID);

            if (m_Connector.ReportAbuse(abuse_report))
            {
                m_log.InfoFormat("[AbuseReports] {0} has reported {1}", abuse_report.SenderName, abuse_report.AbuserName);
                response.Add("state", "complete");
            }
            else
            {
                response.Add("state", "failed");
            }

            return(OSDParser.SerializeLLSDXmlString(response));;
        }
 public bool ReportAbuse(AbuseReportData report)
 {
     if (!m_Enabled)
     {
         return(false);
     }
     return(m_service.ReportAbuse(report));
 }
Esempio n. 3
0
 public bool ReportAbuse(AbuseReportData report)
 {
     if (!m_Enabled)
     {
         return(false);
     }
     return(m_remoteConnector.ReportAbuse(report));
 }
        public bool ReportAbuse(AbuseReportData report)
        {
            if (!m_Database.Store(report))
            {
                return(false);
            }

            return(true);
        }
Esempio n. 5
0
        public string SendUserReportWithScreenshot(string request, string path,
                                                   string param, IOSHttpRequest httpRequest,
                                                   IOSHttpResponse httpResponse, Caps caps)
        {
            httpResponse.StatusCode  = (int)System.Net.HttpStatusCode.OK;
            httpResponse.ContentType = "text/html";

            OSDMap map = (OSDMap)OSDParser.DeserializeLLSDXml(request);

            AbuseReportData abuse_report = AbuseReportDataFromOSD(map);

            abuse_report.SenderID        = caps.AgentID;
            abuse_report.SenderName      = m_UserManager.GetUserName(caps.AgentID);
            abuse_report.AbuseRegionID   = m_Scene.RegionInfo.RegionID;
            abuse_report.AbuseRegionName = m_Scene.RegionInfo.RegionName;
            abuse_report.AbuserName      = m_UserManager.GetUserName(abuse_report.AbuserID);

            UUID screenshot_id = map["screenshot-id"].AsUUID();

            BinaryStreamHandler uploader = new BinaryStreamHandler(
                "POST", "/CAPS/" + UUID.Random(), (byte[] data, string p, string pa) => {
                caps.HttpListener.RemoveStreamHandler("POST", p);

                OSDMap upload_response = new OSDMap();

                abuse_report.ImageData = data;

                if (m_Connector.ReportAbuse(abuse_report))
                {
                    m_log.InfoFormat("[AbuseReports] {0} has reported {1}", abuse_report.SenderName, abuse_report.AbuserName);

                    upload_response.Add("state", "complete");
                    upload_response.Add("new_asset", screenshot_id);
                }
                else
                {
                    upload_response.Add("state", "failed");
                }

                return(OSDParser.SerializeLLSDXmlString(upload_response));
            }, "", null);

            caps.HttpListener.AddStreamHandler(uploader);

            OSDMap response = new OSDMap();

            response.Add("state", "upload");
            response.Add("uploader", "http://" + caps.HostName + ":" + caps.Port + uploader.Path);

            return(OSDParser.SerializeLLSDXmlString(response));;
        }
Esempio n. 6
0
        private AbuseReportData AbuseReportDataFromOSD(OSDMap map)
        {
            AbuseReportData abuse_report = new AbuseReportData();

            if (map.ContainsKey("abuser-id"))
            {
                abuse_report.AbuserID = map["abuser-id"].AsUUID();
            }

            if (map.ContainsKey("category"))
            {
                abuse_report.Category = map["category"].ToString();
            }

            if (map.ContainsKey("check-flags"))
            {
                abuse_report.CheckFlags = map["check-flags"].AsInteger();
            }

            if (map.ContainsKey("details"))
            {
                abuse_report.Details = map["details"].ToString();
            }

            if (map.ContainsKey("object-id"))
            {
                abuse_report.ObjectID = map["object-id"].AsUUID();
            }

            if (map.ContainsKey("position"))
            {
                abuse_report.Position = map["position"].AsVector3().ToString();
            }

            if (map.ContainsKey("report-type"))
            {
                abuse_report.ReportType = map["report-type"].AsInteger();
            }

            if (map.ContainsKey("summary"))
            {
                abuse_report.Summary = map["summary"].ToString();
            }

            if (map.ContainsKey("version-string"))
            {
                abuse_report.Version = map["version-string"].ToString();
            }

            return(abuse_report);
        }
        public bool ReportAbuse(AbuseReportData report)
        {
            Dictionary <string, object> sendData = new Dictionary <string, object>();

            sendData["METHOD"]        = "report";
            sendData["reporter"]      = report.SenderID.ToString();
            sendData["reporter-name"] = report.SenderName;
            sendData["abuser"]        = report.AbuserID.ToString();
            sendData["abuser-name"]   = report.AbuserName;
            sendData["summary"]       = report.Summary;
            sendData["check-flags"]   = report.CheckFlags.ToString();
            sendData["region-id"]     = report.AbuseRegionID.ToString();
            sendData["region-name"]   = report.AbuseRegionName;
            sendData["category"]      = report.Category;
            sendData["version"]       = report.Version;
            sendData["details"]       = report.Details;
            sendData["object-id"]     = report.ObjectID.ToString();
            sendData["position"]      = report.Position.ToString();
            sendData["report-type"]   = report.ReportType.ToString();
            sendData["image-data"]    = Convert.ToBase64String(report.ImageData);

            return(doSimplePost(ServerUtils.BuildQueryString(sendData), "report"));
        }
        byte[] report(Dictionary <string, object> request)
        {
            if (!request.ContainsKey("reporter") || !request.ContainsKey("abuser"))
            {
                return(FailureResult());
            }

            AbuseReportData report = new AbuseReportData();

            if (!UUID.TryParse(request["reporter"].ToString(), out report.SenderID))
            {
                return(FailureResult());
            }

            if (request.ContainsKey("reporter-name"))
            {
                report.SenderName = request["reporter-name"].ToString();
            }

            if (!UUID.TryParse(request["abuser"].ToString(), out report.AbuserID))
            {
                return(FailureResult());
            }

            if (request.ContainsKey("abuser-name"))
            {
                report.AbuserName = request["abuser-name"].ToString();
            }

            if (!UUID.TryParse(request["region-id"].ToString(), out report.AbuseRegionID))
            {
                return(FailureResult());
            }

            if (request.ContainsKey("region-name"))
            {
                report.AbuseRegionName = request["region-name"].ToString();
            }

            report.Time = Util.UnixTimeSinceEpoch();

            if (request.ContainsKey("summary"))
            {
                report.Summary = request["summary"].ToString();
            }

            if (request.ContainsKey("details"))
            {
                report.Details = request["details"].ToString();
            }

            if (request.ContainsKey("version"))
            {
                report.Version = request["version"].ToString();
            }

            if (request.ContainsKey("object-id"))
            {
                if (!UUID.TryParse(request["object-id"].ToString(), out report.ObjectID))
                {
                    return(FailureResult());
                }
            }
            else
            {
                report.ObjectID = UUID.Zero;
            }

            if (request.ContainsKey("position"))
            {
                report.Position = request["position"].ToString();
            }

            if (request.ContainsKey("category"))
            {
                report.Category = request["category"].ToString();
            }

            if (request.ContainsKey("check-flags"))
            {
                if (!Int32.TryParse(request["check-flags"].ToString(), out report.CheckFlags))
                {
                    return(FailureResult());
                }
            }
            else
            {
                report.CheckFlags = 0;
            }

            if (request.ContainsKey("image-data"))
            {
                report.ImageData = Convert.FromBase64String(request["image-data"].ToString());
            }
            else
            {
                report.ImageData = new byte[0];
            }

            m_log.InfoFormat("[ABUSE REPORTS] {0} has reported {1}", report.SenderName, report.AbuserName);

            return(m_service.ReportAbuse(report) ? SuccessResult() : FailureResult());
        }