Esempio n. 1
0
        public ActionResult Delete(TSFile File)
        {
            var  perms = Permissions.Load(User);
            bool can   = perms.Can(File);

            if (!can)
            {
                ModelState.AddModelError("", "You can't delete this file. Check your <a href='"
                                         + Url.Action("Index", "Manage")
                                         + "' target='_blank'>permissions</a>.");
                var model2 = new FileEditModel();
                model2.File        = File;
                model2.Permissions = perms;
                return(View("Edit", model2));
            }
            FileEditModel model;

            if (File == null || File.TeleSoftwareID <= 0)
            {
                return(RedirectToAction("Index"));
            }
            string err;

            if (!File.Delete(out err))
            {
                ModelState.AddModelError("", err);
                model             = new FileEditModel();
                model.File        = File;
                model.Permissions = perms;
                return(View("Edit", model));
            }
            return(RedirectToAction("Index"));
        }
Esempio n. 2
0
        public async Task <IActionResult> Edit(Guid idFile, FileEditModel model)
        {
            if (idFile == null)
            {
                return(NotFound());
            }

            var file = await _context.Files
                       .SingleOrDefaultAsync(m => m.Id == idFile);


            if (file == null)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                file.Name = model.Name;

                await _context.SaveChangesAsync();

                return(RedirectToAction("Details", "Folders", new { idParent = file.FolderId }));
            }
            return(View(model));
        }
Esempio n. 3
0
        public ActionResult Download(int?ID)
        {
            int id    = ID ?? -1;
            var model = new FileEditModel();

            model.File = TSFile.Load(id);
            if (id != -1 && model.File.TeleSoftwareID <= 0)
            {
                return(RedirectToAction("Index"));
            }
            return(File(model.File.Contents, MediaTypeNames.Application.Octet, model.File.FileName));
        }
Esempio n. 4
0
        public async Task <IActionResult> Create(Guid?idParent, FileEditModel model)
        {
            if (idParent == null)
            {
                NotFound();
            }

            var fileName = Path.GetFileName(ContentDispositionHeaderValue.Parse(model.file.ContentDisposition).FileName.Value.Trim('"'));
            var fileExt  = Path.GetExtension(fileName);

            var folder = await _context.Folders
                         .SingleOrDefaultAsync(m => m.Id == idParent);

            if (folder == null)
            {
                NotFound();
            }

            if (ModelState.IsValid)
            {
                var file = new Models.File
                {
                    FolderId  = folder.Id,
                    Name      = model.Name,
                    Extension = fileExt,
                    Size      = (int)model.file.Length
                };
                byte[] Data = null;

                using (var binaryReader = new BinaryReader(model.file.OpenReadStream()))
                {
                    Data = binaryReader.ReadBytes((int)model.file.Length);
                }
                file.file = Data;

                file.Id = Guid.NewGuid();
                _context.Add(file);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Details", "Folders", new { idParent = folder.Id }));
            }
            return(View(model));
        }
Esempio n. 5
0
        public ActionResult Copy(int ID, string ID2)
        {
            if (ID <= 0)
            {
                return(RedirectToAction("Index"));
            }
            var model = new FileEditModel();

            model.Copying             = true;
            model.File                = TSFile.Load(ID);
            model.File.Environment    = ID2;
            model.File.CopyingFromID  = model.File.TeleSoftwareID;
            model.File.TeleSoftwareID = -1;
            if (string.IsNullOrWhiteSpace(model.File.Environment))
            {
                model.OldKey   = model.File.Key;
                model.File.Key = "";
            }
            Session["FileCopy"] = model;
            return(RedirectToAction("Edit"));
        }
Esempio n. 6
0
        public ActionResult EditFile(FileEditModel model)
        {
            if (ModelState.IsValid)
            {
                int days = Convert.ToInt32(model.DeleteTime);
                var file = UnitOfWork.Files.GetFile(model.Id);
                if (file == null)
                {
                    return(HttpNotFound());
                }

                ModelMapper.Map(model, file);
                file.DeleteTime = file.CreationTime.AddDays(days);
                UnitOfWork.Files.SaveFile(file);
                UnitOfWork.SaveChanges();

                return(RedirectToAction("Details", "File", new { sha = file.Sha }));
            }

            return(View(model));
        }
Esempio n. 7
0
        public ActionResult EditFile(string sha)
        {
            if (sha == null)
            {
                return(HttpNotFound());
            }
            var file = UnitOfWork.Files.GetFile(sha);

            if (file == null)
            {
                return(HttpNotFound());
            }
            var model = new FileEditModel
            {
                Id         = file.Id,
                Sha        = file.Sha,
                Name       = file.Name,
                Password   = file.Password,
                DeleteTime = Convert.ToString((file.DeleteTime - file.CreationTime).Days)
            };

            return(PartialView(model));
        }
Esempio n. 8
0
        public ActionResult Edit(int?ID)
        {
            int id    = ID ?? -1;
            var model = new FileEditModel();

            var copy = Session["FileCopy"] as FileEditModel;

            if (copy == null)
            {
                model.File = TSFile.Load(id);
            }
            else
            {
                model = copy;
                model.File.Environment = copy.File.Environment;
            }
            Session["FileCopy"] = null;
            if (id != -1 && model.File.TeleSoftwareID <= 0)
            {
                return(RedirectToAction("Index"));
            }
            model.Permissions = Permissions.Load(User);
            return(View(model));
        }
Esempio n. 9
0
        public ActionResult Save(TSFile File)
        {
            var           perms = Permissions.Load(User);
            bool          can   = perms.Can(File);
            FileEditModel model;

            if (ModelState.IsValid)
            {
                if (!can)
                {
                    ModelState.AddModelError("", "You can't save this file. Check your <a href='"
                                             + Url.Action("Index", "Manage")
                                             + "' target='_blank'>permissions</a>.");
                    model             = new FileEditModel();
                    model.File        = File;
                    model.Permissions = perms;
                    if (model.File.CopyingFromID > 0)
                    {
                        var cf = TSFile.Load(model.File.CopyingFromID);
                        model.File.FileName = cf.FileName;
                        model.File.Contents = cf.Contents;
                    }
                    return(View("Edit", model));
                }
                File.Contents = new byte[0];
                File.FileName = "";
                try
                {
                    if (Request.Files.Count > 0)
                    {
                        HttpPostedFileBase objFiles = Request.Files["Contents"];
                        using (var binaryReader = new BinaryReader(objFiles.InputStream))
                        {
                            File.Contents = binaryReader.ReadBytes(objFiles.ContentLength);
                        }
                        File.FileName = Path.GetFileName(objFiles.FileName);
                    }
                }
                catch
                {
                    File.Contents = new byte[0];
                    File.FileName = "";
                }
                if (File.Contents == null || File.Contents.Length == 0)
                {
                    var existing = TSFile.Load(File.TeleSoftwareID);
                    File.Contents = existing.Contents;
                    File.FileName = existing.FileName;
                }
                string err;
                if (File.TeleSoftwareID <= 0 && File.OwnerID <= 0)
                {
                    File.OwnerID = perms.User.UserNo;
                }
                if (File.CopyingFromID > 0)
                {
                    var cf = TSFile.Load(File.CopyingFromID);
                    File.FileName = cf.FileName;
                    File.Contents = cf.Contents;
                }
                if (!TSFile.Save(File, out err))
                {
                    ModelState.AddModelError("", err);
                    model             = new FileEditModel();
                    model.File        = File;
                    model.Permissions = perms;
                    if (model.File.CopyingFromID > 0)
                    {
                        var cf = TSFile.Load(model.File.CopyingFromID);
                        model.File.FileName = cf.FileName;
                        model.File.Contents = cf.Contents;
                    }
                    return(View("Edit", model));
                }
                return(RedirectToAction("Index"));
            }
            model = new FileEditModel();
            if (File == null)
            {
                model.File = new TSFile();
            }
            if (File.TeleSoftwareID > 0)
            {
                File = TSFile.Load(File.TeleSoftwareID);
            }
            model.File        = File;
            model.Permissions = perms;
            if (model.File.CopyingFromID > 0)
            {
                var cf = TSFile.Load(model.File.CopyingFromID);
                model.File.FileName = cf.FileName;
                model.File.Contents = cf.Contents;
            }
            return(View("Edit", model));
        }