ClearEntriesForDirectory() public static method

Clears all the ACL entries for a directory.
public static ClearEntriesForDirectory ( IFilesStorageProviderV30 provider, string directory ) : void
provider IFilesStorageProviderV30 The provider.
directory string The directory.
return void
        protected void btnNewDirectory_Click(object sender, EventArgs e)
        {
            if (canCreateDirs)
            {
                txtNewDirectoryName.Text = txtNewDirectoryName.Text.Trim();

                lblNewDirectoryResult.Text = "";
                txtNewDirectoryName.Text   = txtNewDirectoryName.Text.Trim('/');
                AuthWriter.ClearEntriesForDirectory(provider, CurrentDirectory + txtNewDirectoryName.Text + "/");
                bool done = provider.CreateDirectory(CurrentDirectory, txtNewDirectoryName.Text);
                if (!done)
                {
                    lblNewDirectoryResult.CssClass = "resulterror";
                    lblNewDirectoryResult.Text     = Properties.Messages.CannotCreateNewDirectory;
                }
                else
                {
                    txtNewDirectoryName.Text = "";

                    Host.Instance.OnDirectoryActivity(provider.GetType().FullName,
                                                      CurrentDirectory + txtNewDirectoryName.Text + "/", null, FileActivity.DirectoryCreated);
                }
                rptItems.DataBind();
            }
        }
        /// <summary>
        /// Recursively moves permissions from the old (renamed) directory to the new one.
        /// </summary>
        /// <param name="oldDirectory">The old directory name.</param>
        /// <param name="newDirectory">The new directory name.</param>
        private void MovePermissions(string oldDirectory, string newDirectory)
        {
            if (!oldDirectory.StartsWith("/"))
            {
                oldDirectory = "/" + oldDirectory;
            }
            if (!oldDirectory.EndsWith("/"))
            {
                oldDirectory = oldDirectory + "/";
            }
            if (!newDirectory.StartsWith("/"))
            {
                newDirectory = "/" + newDirectory;
            }
            if (!newDirectory.EndsWith("/"))
            {
                newDirectory = newDirectory + "/";
            }

            foreach (string sub in provider.ListDirectories(oldDirectory))
            {
                string subNew = newDirectory + sub.Substring(oldDirectory.Length);
                MovePermissions(sub, subNew);
            }

            AuthWriter.ClearEntriesForDirectory(provider, newDirectory);
            AuthWriter.ProcessDirectoryRenaming(provider, oldDirectory, newDirectory);
        }
        /// <summary>
        /// Deletes the permissions of a directory.
        /// </summary>
        /// <param name="provider">The provider.</param>
        /// <param name="directory">The directory.</param>
        private static void DeletePermissions(IFilesStorageProviderV30 provider, string directory)
        {
            directory = NormalizeFullPath(directory);

            foreach (string sub in provider.ListDirectories(directory))
            {
                DeletePermissions(provider, sub);
            }

            AuthWriter.ClearEntriesForDirectory(provider, directory);
        }
Esempio n. 4
0
        /// <summary>
        /// Deletes the permissions of a directory.
        /// </summary>
        /// <param name="provider">The provider.</param>
        /// <param name="directory">The directory.</param>
        private static void DeletePermissions(IFilesStorageProviderV40 provider, string directory)
        {
            directory = NormalizeFullPath(directory);

            foreach (string sub in provider.ListDirectories(directory))
            {
                DeletePermissions(provider, sub);
            }

            AuthWriter authWriter = new AuthWriter(Collectors.CollectorsBox.GetSettingsProvider(provider.CurrentWiki));

            authWriter.ClearEntriesForDirectory(provider, directory);
        }
        /// <summary>
        /// Deletes the permissions of a directory.
        /// </summary>
        /// <param name="directory">The directory.</param>
        private void DeletePermissions(string directory)
        {
            if (!directory.StartsWith("/"))
            {
                directory = "/" + directory;
            }
            if (!directory.EndsWith("/"))
            {
                directory = directory + "/";
            }

            foreach (string sub in provider.ListDirectories(directory))
            {
                DeletePermissions(sub);
            }

            AuthWriter.ClearEntriesForDirectory(provider, directory);
        }
        /// <summary>
        /// Recursively moves permissions from the old (renamed) directory to the new one.
        /// </summary>
        /// <param name="provider">The provider.</param>
        /// <param name="oldDirectory">The old directory.</param>
        /// <param name="newDirectory">The new directory.</param>
        private static void MovePermissions(IFilesStorageProviderV30 provider, string oldDirectory, string newDirectory)
        {
            oldDirectory = NormalizeFullPath(oldDirectory);
            newDirectory = NormalizeFullPath(newDirectory);

            // At this point the directory has been already renamed,
            // thus we must list on the new directory and construct the old name
            // Example: /directory/one/ renamed to /directory/two-two/
            // List on /directory/two-two/
            //     dir1
            //     dir2
            // oldSub = /directory/one/dir1/

            foreach (string sub in provider.ListDirectories(newDirectory))
            {
                string oldSub = oldDirectory + sub.Substring(newDirectory.Length);
                MovePermissions(provider, oldSub, sub);
            }

            AuthWriter.ClearEntriesForDirectory(provider, newDirectory);
            AuthWriter.ProcessDirectoryRenaming(provider, oldDirectory, newDirectory);
        }
Esempio n. 7
0
        protected void btnNewDirectory_Click(object sender, EventArgs e)
        {
            if (canCreateDirs)
            {
                txtNewDirectoryName.Text = txtNewDirectoryName.Text.Trim();

                lblNewDirectoryResult.Text = "";
                txtNewDirectoryName.Text   = txtNewDirectoryName.Text.Trim('/');
                AuthWriter authWriter = new AuthWriter(Collectors.CollectorsBox.GetSettingsProvider(currentWiki));
                authWriter.ClearEntriesForDirectory(provider, CurrentDirectory + txtNewDirectoryName.Text + "/");

                bool done = FilesAndAttachments.CreateDirectory(provider, CurrentDirectory, txtNewDirectoryName.Text);
                if (!done)
                {
                    lblNewDirectoryResult.CssClass = "resulterror";
                    lblNewDirectoryResult.Text     = Properties.Messages.CannotCreateNewDirectory;
                }
                else
                {
                    txtNewDirectoryName.Text = "";
                }
                rptItems.DataBind();
            }
        }