Пример #1
0
 public File(string path, string name, string data, FilePerms perms)
 {
     this.path  = path ?? throw new ArgumentNullException(nameof(path));
     this.name  = name ?? throw new ArgumentNullException(nameof(name));
     this.data  = data ?? throw new ArgumentNullException(nameof(data));
     this.perms = perms;
 }
Пример #2
0
        private static FilePerms ParseFilePerms(string filePerms)
        {
            FilePerms dp = FilePerms.None;

            string[] perms = filePerms.Split('|');
            foreach (string p in perms)
            {
                if (p == "Read")
                {
                    dp |= FilePerms.Read;
                }
                else if (p == "Delete")
                {
                    dp |= FilePerms.Delete;
                }
                else if (p == "List")
                {
                    dp |= FilePerms.Write;
                }
                else if (p == "ListSub")
                {
                    dp |= FilePerms.Append;
                }
            }
            return(dp);
        }
Пример #3
0
 public VirtualDirectory(string alias, string path, bool isRoot, DirectoryPerms directoryPerms, FilePerms filePerms)
 {
     Alias          = alias;
     Path           = path;
     IsRoot         = isRoot;
     DirectoryPerms = directoryPerms;
     FilePerms      = filePerms;
 }
Пример #4
0
        public static void AddFile(FilePerms perms, string path = "~/", string name = "File", string data = "", int id = 0)
        {
            for (int i = 0; i < files.Count; i++)
            {
                if (files[i].name == name && files[i].path == path)
                {
                    Output.WriteError($"File '{name}' already exists!\n");
                    return;
                }
            }

            files.Add(new File(path, name, data, perms));
        }
Пример #5
0
        public static FilePerms GetFilePerms(string name)
        {
            FilePerms fp = new FilePerms()
            {
                flag = FileFlag.DoesntExists
            };

            foreach (File file in files)
            {
                if (file.name == name && file.path == DirListToString(currentDirectory))
                {
                    fp = file.perms;
                }
            }
            return(fp);
        }
Пример #6
0
        public void Execute(string[] args, User user)
        {
            FilePerms fp = FSManager.GetFilePerms(args[1]);

            if (fp.flag == FileFlag.DoesntExists)
            {
                Output.WriteError("File doesn't exist!\n");
                return;
            }
            if ((user.userID == fp.owner || fp.aw == true || user.executeUserID == 0))
            {
                Output.WriteError("You don't have permission to delete this file!\n");
                return;
            }
            FSManager.RemoveFile(args[1]);
        }