Beispiel #1
0
        protected override void OnLoad(EventArgs e)
        {
            Config.LoadConfig();

            if (!Config.Enabled)
            {
                XmlResponseHandler.SendError(Response, 1, "This connector is disabled. Please check the \"editor/filemanager/connectors/aspx/config.ascx\" file.");
                return;
            }

            // Get the main request information.
            string sCommand       = Request.QueryString["Command"];
            string sResourceType  = Request.QueryString["Type"];
            string sCurrentFolder = Request.QueryString["CurrentFolder"];

            if (sCommand == null || sResourceType == null || sCurrentFolder == null)
            {
                XmlResponseHandler.SendError(Response, 1, "Invalid request.");
                return;
            }

            // Check if it is an allowed type.
            if (!Config.CheckIsTypeAllowed(sResourceType))
            {
                XmlResponseHandler.SendError(Response, 1, "Invalid resource type specified.");
                return;
            }

            // Check the current folder syntax (must begin and start with a slash).
            if (!sCurrentFolder.EndsWith("/"))
            {
                sCurrentFolder += "/";
            }
            if (!sCurrentFolder.StartsWith("/"))
            {
                sCurrentFolder = "/" + sCurrentFolder;
            }

            // Check for invalid folder paths (..).
            if (sCurrentFolder.IndexOf("..") >= 0 || sCurrentFolder.IndexOf("\\") >= 0)
            {
                XmlResponseHandler.SendError(Response, 102, "");
                return;
            }

            // File Upload doesn't have to return XML, so it must be intercepted before anything.
            if (sCommand == "FileUpload")
            {
                this.FileUpload(sResourceType, sCurrentFolder, false);
                return;
            }

            XmlResponseHandler oResponseHandler = new XmlResponseHandler(this, Response);
            XmlNode            oConnectorNode   = oResponseHandler.CreateBaseXml(sCommand, sResourceType, sCurrentFolder);

            // Execute the required command.
            switch (sCommand)
            {
            case "GetFolders":
                this.GetFolders(oConnectorNode, sResourceType, sCurrentFolder);
                break;

            case "GetFoldersAndFiles":
                this.GetFolders(oConnectorNode, sResourceType, sCurrentFolder);
                this.GetFiles(oConnectorNode, sResourceType, sCurrentFolder);
                break;

            case "CreateFolder":
                this.CreateFolder(oConnectorNode, sResourceType, sCurrentFolder);
                break;
            }

            oResponseHandler.SendResponse();
        }
Beispiel #2
0
 private void SetupResponse()
 {
     XmlResponseHandler.SetupResponse(this.Response);
 }