Ejemplo n.º 1
0
        private void FinderRequestSuccess(AdminFinderResponse response)
        {
            CKFinder.Config.Language = Strings.Get("CKFinderLanguage");
            CKFinder.Config.ConnectorInfo = "token=" + response.token;

            finder = new CKFinder();
            finder.BasePath = "ckfinder/";
            finder.Callback = delegate(CKFinderAPI api)
            {
                api.DisableFileContextMenuOption("selectFile", false);
                api.DisableFileContextMenuOption("viewFile", false);
                api.DisableFileContextMenuOption("downloadFile", false);
                api.DisableFileContextMenuOption("renameFile", false);
                api.DisableFileContextMenuOption("deleteFile", false);
                api.DisableFolderContextMenuOption("removeFolder", false);
                api.DisableFolderContextMenuOption("kl", false);
                api.DisableFolderContextMenuOption("lI", false);

                jQueryObject finderFrame = jQuery.Select("#admin-finder-body iframe").Contents();
                finderFrame.Find("a.cke_button_upload").Remove();
                finderFrame.Find("a.cke_button_maximize").Remove();

                Show();
            };

            finder.SelectActionFunction = delegate(string fileUrl)
            {
                if (cid != -1)
                {
                    ChangeTargetFieldAndHide(fileUrl);
                }
            };

            finder.AppendTo("admin-finder-body");
        }
Ejemplo n.º 2
0
        public override void HandleRequest(string jsonString, AjaxBase ajax)
        {
            if (!User.IsAdminLoggedIn(ajax))
            {
                ajax.Unauthorized();
                return;
            }

            AdminFinderRequest request = Utility.ParseJson<AdminFinderRequest>(jsonString);
            AdminFinderResponse response = new AdminFinderResponse();
            Collection collection = null;
            string[][] finderData;

            if (request.cid != -1)
            {
                collection = Collection.GetById(request.cid);
                if (collection == null)
                {
                    ajax.BadRequest();
                    return;
                }

                finderData = new string[][] { new string[] { collection.Name, collection.Path } };
            }
            else
            {
                List<string[]> diskData = new List<string[]>();
                string[] discs = Environment.GetLogicalDrives();
                for (int i = 0; i < discs.Length; i++)
                {
                    string driveLetter = discs[i].Replace(":\\", "");
                    using (System.Management.ManagementObject diskObj = new System.Management.ManagementObject("win32_logicaldisk.deviceid=\"" + driveLetter + ":\""))
                    {
                        if (diskObj["DriveType"].ToString() == "3") // Local Disk
                        {
                            diskData.Add(new string[] { driveLetter + ":", driveLetter + ":\\" });
                        }
                    }
                }

                finderData = diskData.ToArray();
            }

            Random r = new Random();
            StringBuilder tokenBuilder = new StringBuilder();
            for (int i = 0; i < 32; i++)
            {
                int n = r.Next(36);
                if (n < 10)
                {
                    tokenBuilder.Append(n);
                }
                else
                {
                    tokenBuilder.Append(Convert.ToChar(55 + n));
                }
            }

            response.token = tokenBuilder.ToString();

            SessionWrapper.SetFinderData(ajax, response.token, finderData);

            ajax.ReturnJson(response);
        }