New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exclude Directories #19235

Merged
merged 4 commits into from Sep 2, 2016

Conversation

Projects
None yet
9 participants
@mmattel
Contributor

mmattel commented Sep 22, 2015

Successor of PR #16534

Before mmattel/core
Now owncloud/core

Shoud fix CI start

@schiessle

View changes

Show outdated Hide outdated apps/files/ajax/newfile.php
@@ -61,6 +61,15 @@
exit();
}
if (\OC\Files\Filesystem::isForbiddenFileOrDir($fileName)) {

This comment has been minimized.

This comment has been minimized.

@mmattel

mmattel Sep 22, 2015

Contributor

No it does not.
And we need this query here to display on the UI the text.

@mmattel

mmattel Sep 22, 2015

Contributor

No it does not.
And we need this query here to display on the UI the text.

This comment has been minimized.

@schiessle

schiessle Sep 28, 2015

Member

What's about "upload" then? There you also get a generic error message only, right?
Maybe it would be a good idea to let the hook throw an exception with the corresponding error message if it is forbidden and then make sure that we display the error message from the exception instead of a generic one. You could use the HintException to provide a translated message. We do something similar with encryption errors.

It is probably more failure save instead of adding if statements all over the place and it is more generic since other errors can be handled the same way.

@schiessle

schiessle Sep 28, 2015

Member

What's about "upload" then? There you also get a generic error message only, right?
Maybe it would be a good idea to let the hook throw an exception with the corresponding error message if it is forbidden and then make sure that we display the error message from the exception instead of a generic one. You could use the HintException to provide a translated message. We do something similar with encryption errors.

It is probably more failure save instead of adding if statements all over the place and it is more generic since other errors can be handled the same way.

@schiessle

View changes

Show outdated Hide outdated apps/files/ajax/newfolder.php
@@ -53,6 +53,15 @@
return;
}
if (\OC\Files\Filesystem::isForbiddenFileOrDir($folderName)) {

This comment has been minimized.

This comment has been minimized.

@mmattel

mmattel Sep 22, 2015

Contributor

No it does not.
And we need this query here to display on the UI the text.

@mmattel

mmattel Sep 22, 2015

Contributor

No it does not.
And we need this query here to display on the UI the text.

@oparoz oparoz added this to the 8.2-current milestone Sep 25, 2015

@oparoz oparoz added the enhancement label Sep 25, 2015

@oparoz

This comment has been minimized.

Show comment
Hide comment
@oparoz

oparoz Sep 25, 2015

Contributor

@mmattel @PVince81 @rperezb In order to test this properly, could we have some sort of acceptance test list with checkboxes? Would make it easier to know what's been tested and which corner cases we may have forgotten about.

Contributor

oparoz commented Sep 25, 2015

@mmattel @PVince81 @rperezb In order to test this properly, could we have some sort of acceptance test list with checkboxes? Would make it easier to know what's been tested and which corner cases we may have forgotten about.

@mmattel

This comment has been minimized.

Show comment
Hide comment
@mmattel

mmattel Sep 26, 2015

Contributor

Testscenario_1:
Focus: try to create a excluded directory name
Preperation: the name must NOT exist in the filesystem

Storage Task (t) Browser Webdav Creatable Result (r) Comment
local D x yes
local E x no (1)
local D x yes
local E x no (2)
SMB D x yes
SMB E x no (1)
SMB D x yes
SMB E x no (2)
  • t ... define a directory name to be excluded like fgh
    • E ... enable it config.php
    • D ... disable it in config.php (I just renamed it to .fgh and vice versa)
  • r ... y (yes), n (no), -- (n/a)

(1) ... A browser popup should appear that this name is excluded and can´t be used
(2) ... WebDav reports 'Forbidden'

  • Testscenario_1 sucessfully finished

Testscenario_2:
Focus: are the directories properly shown.
Preperation: have a directory already created with an excluded name which will then be checked against. This means, that the ecluded directory name already exists in the filesystem.

Storage Task (t) Browser Webdav Is_Visible Result (r) Comment
local D x yes
local E x no
local D x yes
local E x no
SMB D x yes
SMB E x no
SMB D x yes
SMB E x no
  • t ... define a directory name to be excluded like fgh
    • E ... enable it config.php
    • D ... disable it in config.php (I just renamed it to .fgh and vice versa)
  • r ... y (yes), n (no), -- (n/a)
  • Testscenario_2 sucessfully finished

Testscenario_3:
Focus: try to create an excluded directory name where the name DOES already exist in the filesystem
Preperation: like test 2

Storage Task (t) Browser Webdav Is_Creatable Result (r) Comment
local D x no same as Test2
local E x no same as Test2
local D x no (1)
local E x no (1)
SMB D x no same as Test2
SMB E x no same as Test2
SMB D x no (1)
SMB E x no (1)
  • t ... define a directory name to be excluded like fgh
    • E ... enable it config.php
    • D ... disable it in config.php (I just renamed it to .fgh and vice versa)
  • r ... y (yes), n (no), -- (n/a)

(1) ... A Fatal Error Message is created, the WebDav client also shows an error. But this is according to my tests not related to this PR. For details pls see #19101 (WebDav: create directory with an already existing directory name -> Fatal error)

  • Testscenario_3 sucessfully finished

Note : I wanted to use checkboxes in the table, but this did not work

Contributor

mmattel commented Sep 26, 2015

Testscenario_1:
Focus: try to create a excluded directory name
Preperation: the name must NOT exist in the filesystem

Storage Task (t) Browser Webdav Creatable Result (r) Comment
local D x yes
local E x no (1)
local D x yes
local E x no (2)
SMB D x yes
SMB E x no (1)
SMB D x yes
SMB E x no (2)
  • t ... define a directory name to be excluded like fgh
    • E ... enable it config.php
    • D ... disable it in config.php (I just renamed it to .fgh and vice versa)
  • r ... y (yes), n (no), -- (n/a)

(1) ... A browser popup should appear that this name is excluded and can´t be used
(2) ... WebDav reports 'Forbidden'

  • Testscenario_1 sucessfully finished

Testscenario_2:
Focus: are the directories properly shown.
Preperation: have a directory already created with an excluded name which will then be checked against. This means, that the ecluded directory name already exists in the filesystem.

Storage Task (t) Browser Webdav Is_Visible Result (r) Comment
local D x yes
local E x no
local D x yes
local E x no
SMB D x yes
SMB E x no
SMB D x yes
SMB E x no
  • t ... define a directory name to be excluded like fgh
    • E ... enable it config.php
    • D ... disable it in config.php (I just renamed it to .fgh and vice versa)
  • r ... y (yes), n (no), -- (n/a)
  • Testscenario_2 sucessfully finished

Testscenario_3:
Focus: try to create an excluded directory name where the name DOES already exist in the filesystem
Preperation: like test 2

Storage Task (t) Browser Webdav Is_Creatable Result (r) Comment
local D x no same as Test2
local E x no same as Test2
local D x no (1)
local E x no (1)
SMB D x no same as Test2
SMB E x no same as Test2
SMB D x no (1)
SMB E x no (1)
  • t ... define a directory name to be excluded like fgh
    • E ... enable it config.php
    • D ... disable it in config.php (I just renamed it to .fgh and vice versa)
  • r ... y (yes), n (no), -- (n/a)

(1) ... A Fatal Error Message is created, the WebDav client also shows an error. But this is according to my tests not related to this PR. For details pls see #19101 (WebDav: create directory with an already existing directory name -> Fatal error)

  • Testscenario_3 sucessfully finished

Note : I wanted to use checkboxes in the table, but this did not work

@oparoz

This comment has been minimized.

Show comment
Hide comment
@oparoz

oparoz Sep 26, 2015

Contributor

Excellent, thank you :)

Contributor

oparoz commented Sep 26, 2015

Excellent, thank you :)

@MorrisJobke

This comment has been minimized.

Show comment
Hide comment
@MorrisJobke

MorrisJobke Sep 28, 2015

Member

@DeepDiver1975 @oparoz I don't think we want this in 8.2. We are already in feature freeze.

Member

MorrisJobke commented Sep 28, 2015

@DeepDiver1975 @oparoz I don't think we want this in 8.2. We are already in feature freeze.

@oparoz

This comment has been minimized.

Show comment
Hide comment
@oparoz

oparoz Sep 28, 2015

Contributor

I don't have a say in this ;)

Contributor

oparoz commented Sep 28, 2015

I don't have a say in this ;)

@MorrisJobke MorrisJobke modified the milestones: 9.0-next, 8.2-current Sep 28, 2015

@MorrisJobke

This comment has been minimized.

Show comment
Hide comment
Member

MorrisJobke commented Sep 28, 2015

@DeepDiver1975 @cmonteroluque enhancement -> 9.0

@cmonteroluque

This comment has been minimized.

Show comment
Hide comment
Contributor

cmonteroluque commented Sep 30, 2015

@DeepDiver1975

This comment has been minimized.

Show comment
Hide comment
@DeepDiver1975

DeepDiver1975 Nov 10, 2015

Member

rebased

Member

DeepDiver1975 commented Nov 10, 2015

rebased

@PVince81

This comment has been minimized.

Show comment
Hide comment
@PVince81

PVince81 Jan 8, 2016

Member

@icewind1991 can you please comment on this PR ?

Member

PVince81 commented Jan 8, 2016

@icewind1991 can you please comment on this PR ?

@DeepDiver1975

This comment has been minimized.

Show comment
Hide comment
@DeepDiver1975

DeepDiver1975 Jan 13, 2016

Member

needs rebase

Member

DeepDiver1975 commented Jan 13, 2016

needs rebase

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Jan 16, 2016

Please also ping in owncloud/documentation#1275 if this PR gets merged.

ghost commented Jan 16, 2016

Please also ping in owncloud/documentation#1275 if this PR gets merged.

@MorrisJobke MorrisJobke modified the milestones: 9.1-next, 9.0-current Mar 4, 2016

@icewind1991

This comment has been minimized.

Show comment
Hide comment
@icewind1991

icewind1991 May 20, 2016

Member

The main problem i have left with this is the seperate in the config between "blacklisted files" and "excluded directories", I see no reason why they can't be the came config entry

Also isForbiddenFileOrDir looks like it could be a lot easier

Something like

$config = \OC::$server->getSystemConfig();
$excluded = $config->getValue('blacklisted_files', ['.htaccess']);
$path  = str_replace('\\','/', $path);
$paths  = explode('/', $path);
return (bool) array_intersect($parts, $excluded);

should be enough

not sure about the making the blacklist case insensitive

Member

icewind1991 commented May 20, 2016

The main problem i have left with this is the seperate in the config between "blacklisted files" and "excluded directories", I see no reason why they can't be the came config entry

Also isForbiddenFileOrDir looks like it could be a lot easier

Something like

$config = \OC::$server->getSystemConfig();
$excluded = $config->getValue('blacklisted_files', ['.htaccess']);
$path  = str_replace('\\','/', $path);
$paths  = explode('/', $path);
return (bool) array_intersect($parts, $excluded);

should be enough

not sure about the making the blacklist case insensitive

@mmattel

This comment has been minimized.

Show comment
Hide comment
@mmattel

mmattel May 20, 2016

Contributor
  • Blacklist ... files that may harm the owncloud environment like a foreign .htaccess file
  • Excluded ... directories that are excluded from beeing further processed, like snapshot directories

There is a big difference between those two parameters and the meaning behind.

Excluded Directories mean, that the storage or filesystem mounted may contain folders having a part in the path name which you want to exclude from scanning (therefore the name excluded) and from an oC point of view disallow creation or viewing or renaming to with any access method. When scanning occured and the config parameter was not set but the storage or filesystem contained such directories, after setting the parameter, the must be excluded from further processing. (pls also read #16534)

Blacklisted Files mean, they are files that can be present but would impact owncloud and therefore be blacklisted.

I highly recommend keeping those two parameters seperated, because this gives admins the proper meaning what they want to do.

Regarding isForbiddenFileOrDir, any improvment is positive. Excluded Directories must be case insensitive and should be trimmed. The only thing to consider is, that we do not miss any possible case. The test highlights all possible cases I have identified:

    public function isExcludedData() {
        return array(
            array('.snapshot', true),
            array('.snapshot/', true),
            array('.snapshot\\', true),
            array('/etc/foo/bar/foo.txt', false),
            array('/.snapshot/etc/foo/bar/foo.txt', true),
            array('/.snapShot/etc/foo/bar/foo.txt', true),
            array('\.snapshot\etc\foo/bar\foo.txt', true),
            array('/etc/foo/.snapshot', true),
            array('/etc/foo/.snapshot/bar', true),
        );

Note: due to time constraints I have very limited possibilities to continue on that, but would be happy if that idea would get implemented. There is a sound need for and many request made!
Please see also the test scenarious above I created.

Contributor

mmattel commented May 20, 2016

  • Blacklist ... files that may harm the owncloud environment like a foreign .htaccess file
  • Excluded ... directories that are excluded from beeing further processed, like snapshot directories

There is a big difference between those two parameters and the meaning behind.

Excluded Directories mean, that the storage or filesystem mounted may contain folders having a part in the path name which you want to exclude from scanning (therefore the name excluded) and from an oC point of view disallow creation or viewing or renaming to with any access method. When scanning occured and the config parameter was not set but the storage or filesystem contained such directories, after setting the parameter, the must be excluded from further processing. (pls also read #16534)

Blacklisted Files mean, they are files that can be present but would impact owncloud and therefore be blacklisted.

I highly recommend keeping those two parameters seperated, because this gives admins the proper meaning what they want to do.

Regarding isForbiddenFileOrDir, any improvment is positive. Excluded Directories must be case insensitive and should be trimmed. The only thing to consider is, that we do not miss any possible case. The test highlights all possible cases I have identified:

    public function isExcludedData() {
        return array(
            array('.snapshot', true),
            array('.snapshot/', true),
            array('.snapshot\\', true),
            array('/etc/foo/bar/foo.txt', false),
            array('/.snapshot/etc/foo/bar/foo.txt', true),
            array('/.snapShot/etc/foo/bar/foo.txt', true),
            array('\.snapshot\etc\foo/bar\foo.txt', true),
            array('/etc/foo/.snapshot', true),
            array('/etc/foo/.snapshot/bar', true),
        );

Note: due to time constraints I have very limited possibilities to continue on that, but would be happy if that idea would get implemented. There is a sound need for and many request made!
Please see also the test scenarious above I created.

@DeepDiver1975

This comment has been minimized.

Show comment
Hide comment
@DeepDiver1975

DeepDiver1975 May 31, 2016

Member

@mmattel rebase is required please

@icewind1991 accept or not? THX

Member

DeepDiver1975 commented May 31, 2016

@mmattel rebase is required please

@icewind1991 accept or not? THX

@PVince81

This comment has been minimized.

Show comment
Hide comment
@PVince81

PVince81 May 31, 2016

Member

@DeepDiver1975 this has been rebased many many times by @mmattel already and he stated that he doesn't have time to continue this.

So we need to make a decision about this PR and take over.

Member

PVince81 commented May 31, 2016

@DeepDiver1975 this has been rebased many many times by @mmattel already and he stated that he doesn't have time to continue this.

So we need to make a decision about this PR and take over.

@PVince81

This comment has been minimized.

Show comment
Hide comment
@PVince81

PVince81 May 31, 2016

Member

@MTRichards I have added this to the planning list #24684 (comment)

Hopefully we can finally get this merged in the next release

Member

PVince81 commented May 31, 2016

@MTRichards I have added this to the planning list #24684 (comment)

Hopefully we can finally get this merged in the next release

@PVince81 PVince81 modified the milestones: 9.2-next, 9.1-current May 31, 2016

Show outdated Hide outdated apps/dav/lib/connector/sabre/directory.php
# the check here is necessary, because createFile uses put covered in sabre/file.php
# and not touch covered in files/view.php
if (\OC\Files\Filesystem::isForbiddenFileOrDir($name)) {
throw new \Sabre\DAV\Exception\Forbidden();

This comment has been minimized.

@PVince81

PVince81 Aug 22, 2016

Member

@mmattel any reason the check is done twice within the same method, outside and inside the try ?
Looks like a potential rebase mistake.

@PVince81

PVince81 Aug 22, 2016

Member

@mmattel any reason the check is done twice within the same method, outside and inside the try ?
Looks like a potential rebase mistake.

This comment has been minimized.

@mmattel

mmattel Aug 22, 2016

Contributor

You are right, not necessary to have it twice. Outside should be fine. Thanks for picking this up.
One thing I remember was the challenge to find a place where all DAV filesystem calls are passing thru, so this query would only be present once, but with the test I made this was not the case or at least I failed finding it...
The point is to cover scan, read, write, rename, (move) and check if a isForbiddenFileOrDir is requested.
Easier for standard filesystem access, but seems to be more complex for DAV.

I would be very happy if you take over and finalize this PR 😃 (I am really sorry for but I am lacking the time for)

@mmattel

mmattel Aug 22, 2016

Contributor

You are right, not necessary to have it twice. Outside should be fine. Thanks for picking this up.
One thing I remember was the challenge to find a place where all DAV filesystem calls are passing thru, so this query would only be present once, but with the test I made this was not the case or at least I failed finding it...
The point is to cover scan, read, write, rename, (move) and check if a isForbiddenFileOrDir is requested.
Easier for standard filesystem access, but seems to be more complex for DAV.

I would be very happy if you take over and finalize this PR 😃 (I am really sorry for but I am lacking the time for)

@PVince81

This comment has been minimized.

Show comment
Hide comment
@PVince81

PVince81 Aug 22, 2016

Member

I'm wondering whether this would be easier using a storage wrapper and throw the exception from there for any file operation. But then it would make the exclusion relative to the storage roots instead of the user's home.

Anyway, I'm willing to take over this at some point.

Member

PVince81 commented Aug 22, 2016

I'm wondering whether this would be easier using a storage wrapper and throw the exception from there for any file operation. But then it would make the exclusion relative to the storage roots instead of the user's home.

Anyway, I'm willing to take over this at some point.

@PVince81 PVince81 assigned PVince81 and unassigned icewind1991 Aug 22, 2016

@mmattel

This comment has been minimized.

Show comment
Hide comment
@mmattel

mmattel Aug 22, 2016

Contributor

But then it would make the exclusion relative to the storage roots instead of the user's home.

Hope not blaming myself, but does this make a difference?
I come from another point of view: whenever there is a filesystem request coming from any source, check for a forbidden pattern in any place in the given string and reject any processing (including scanning) it if true. Any working method for achieving this is valid.

Contributor

mmattel commented Aug 22, 2016

But then it would make the exclusion relative to the storage roots instead of the user's home.

Hope not blaming myself, but does this make a difference?
I come from another point of view: whenever there is a filesystem request coming from any source, check for a forbidden pattern in any place in the given string and reject any processing (including scanning) it if true. Any working method for achieving this is valid.

@PVince81

This comment has been minimized.

Show comment
Hide comment
@PVince81

PVince81 Aug 22, 2016

Member

but does this make a difference?

It only makes a difference on how the admin wants to configure it.

Anyway, it was mostly an additional thought I wanted to document here. I think your approach is fine.

Member

PVince81 commented Aug 22, 2016

but does this make a difference?

It only makes a difference on how the admin wants to configure it.

Anyway, it was mostly an additional thought I wanted to document here. I think your approach is fine.

@PVince81

This comment has been minimized.

Show comment
Hide comment
@PVince81

PVince81 Aug 22, 2016

Member

Rebased, not tested yet (files app still seems to work at the moment)

Member

PVince81 commented Aug 22, 2016

Rebased, not tested yet (files app still seems to work at the moment)

@DeepDiver1975

This comment has been minimized.

Show comment
Hide comment
Member

DeepDiver1975 commented Aug 23, 2016

unit tests are badly falling apart - 89 failed tests
https://jenkins.owncloud.org/job/owncloud-core/job/core/job/PR-19235/1/testReport/

Show outdated Hide outdated lib/private/Files/View.php
@@ -1408,6 +1408,9 @@ public function getDirectoryContent($directory, $mimetype_filter = '') {
/**
* @var \OC\Files\FileInfo[] $files
*/
$files = array_filter(function(ICacheEntry $content) {
return (!\OC\Files\Filesystem::isForbiddenFileOrDir($content['path']));
});

This comment has been minimized.

@mmattel

mmattel Aug 23, 2016

Contributor

Should´nt that be (without testing):

$files = array_filter($content, function(ICacheEntry $c) {
                return (!\OC\Files\Filesystem::isForbiddenFileOrDir($c['path']));
            });
@mmattel

mmattel Aug 23, 2016

Contributor

Should´nt that be (without testing):

$files = array_filter($content, function(ICacheEntry $c) {
                return (!\OC\Files\Filesystem::isForbiddenFileOrDir($c['path']));
            });

This comment has been minimized.

@PVince81

PVince81 Aug 24, 2016

Member

yes, fixed

@PVince81

PVince81 Aug 24, 2016

Member

yes, fixed

@PVince81

This comment has been minimized.

Show comment
Hide comment
@PVince81

PVince81 Aug 24, 2016

Member

Did a quick test with the old Webdav and new Webdav endpoints and an excluded folder called "snapshots".

Seems to work so far: listing, deleting or overwriting the folder is denied.

Member

PVince81 commented Aug 24, 2016

Did a quick test with the old Webdav and new Webdav endpoints and an excluded folder called "snapshots".

Seems to work so far: listing, deleting or overwriting the folder is denied.

@mmattel

This comment has been minimized.

Show comment
Hide comment
@mmattel

mmattel Aug 24, 2016

Contributor

Great !
I have written test cases, pls see above. If they pass then this PR should be ready. Sorry if I cant do, businesstrip...

Contributor

mmattel commented Aug 24, 2016

Great !
I have written test cases, pls see above. If they pass then this PR should be ready. Sorry if I cant do, businesstrip...

@PVince81

This comment has been minimized.

Show comment
Hide comment
@PVince81

PVince81 Aug 24, 2016

Member

businesstrip...

No time to kill on the plane ? (if applicable) 😉

Am thinking of maybe writing integration tests to automatically test this.
The browser test cases can be removed as the web UI uses Webdav already since 9.0 (except for uploads)

Member

PVince81 commented Aug 24, 2016

businesstrip...

No time to kill on the plane ? (if applicable) 😉

Am thinking of maybe writing integration tests to automatically test this.
The browser test cases can be removed as the web UI uses Webdav already since 9.0 (except for uploads)

mmattel and others added some commits Jul 24, 2015

exclude directories from beeing processed
extended case: search at any place of the path given

adding case insensitiveness

added suggestions and improvements

removed unnecessary function parameter

new approach according the rethinking

fixed code and unit tests

update comments

improved code, added calls for trashbin copyFromStorage
exclude directories from beeing processed
extended case: search at any place of the path given

adding case insensitiveness

added suggestions and improvements

removed unnecessary function parameter

new approach according the rethinking

fixed code and unit tests

update comments

improved code, added calls for trashbin copyFromStorage
@mmattel

This comment has been minimized.

Show comment
Hide comment
@mmattel

mmattel Sep 2, 2016

Contributor

@PVince81 any news? would really appreciate to get that in

Contributor

mmattel commented Sep 2, 2016

@PVince81 any news? would really appreciate to get that in

@PVince81

This comment has been minimized.

Show comment
Hide comment
@PVince81

PVince81 Sep 2, 2016

Member

Tested with many file operations on local storage and external storage and also subdirectories.
Sync client works too.
Any attempt to do any file operation on the excluded folder results in 403 Forbidden.

Exclusion works fine 👍

Member

PVince81 commented Sep 2, 2016

Tested with many file operations on local storage and external storage and also subdirectories.
Sync client works too.
Any attempt to do any file operation on the excluded folder results in 403 Forbidden.

Exclusion works fine 👍

@PVince81 PVince81 merged commit 1826836 into master Sep 2, 2016

4 checks passed

Scrutinizer 7 new issues, 7 updated code elements
Details
continuous-integration/jenkins/pr This commit looks good
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
licence/cla Contributor License Agreement is signed.
Details

@PVince81 PVince81 deleted the exclude_directories_III branch Sep 2, 2016

@PVince81

This comment has been minimized.

Show comment
Hide comment
Member

PVince81 commented Sep 2, 2016

@PVince81

This comment has been minimized.

Show comment
Hide comment
@PVince81

PVince81 Sep 2, 2016

Member

@mmattel thanks a lot ! And sorry that it took so long to get in.

Member

PVince81 commented Sep 2, 2016

@mmattel thanks a lot ! And sorry that it took so long to get in.

@mmattel

This comment has been minimized.

Show comment
Hide comment
@mmattel

mmattel Sep 2, 2016

Contributor

🎉 😃

Contributor

mmattel commented Sep 2, 2016

🎉 😃

mmattel added a commit to nextcloud/server that referenced this pull request Oct 5, 2016

Feature PR, references: Exclude Directories (merged, for professional…
… Storage use) owncloud/core/pull/19235

Adds the ability to define directories in config.php which will not be further processed (scanned, shown, created ect). These directories exist but will not handled in nextcloud.
Usecase: eg. filesystem which have the ability of snapshots have a defined naming for them. For details pls see also the documentation PR coming asap.

@mmattel mmattel referenced this pull request Oct 5, 2016

Closed

Exclude Directories #1627

@JKawohl

This comment has been minimized.

Show comment
Hide comment
@JKawohl

JKawohl Feb 22, 2017

Contributor

@PVince81 is this safe to patch into current 9.1 ?

Contributor

JKawohl commented Feb 22, 2017

@PVince81 is this safe to patch into current 9.1 ?

@PVince81

This comment has been minimized.

Show comment
Hide comment
@PVince81

PVince81 Feb 23, 2017

Member

@Kawohl no, this is a huge change and I wouldn't recommend patching. This would need careful testing.

Member

PVince81 commented Feb 23, 2017

@Kawohl no, this is a huge change and I wouldn't recommend patching. This would need careful testing.

@JKawohl

This comment has been minimized.

Show comment
Hide comment
@JKawohl

JKawohl Feb 23, 2017

Contributor

thanks!

Contributor

JKawohl commented Feb 23, 2017

thanks!

@PVince81 PVince81 referenced this pull request Apr 26, 2017

Merged

Update release_notes.rst #3024

@mmattel mmattel referenced this pull request Sep 14, 2017

Merged

Prevent .part upload via dav #29011

5 of 9 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment