# @description: WebDAV-Migration für Mandanten
# @depends: clients
# @ignore: 0
-package SL::DBUpgrade2::clients_webdav;
+package SL::DBUpgrade2::Auth::clients_webdav;
use strict;
use utf8;
use parent qw(SL::DBUpgrade2::Base);
+use File::Find ();
use File::Path qw(make_path);
use IO::Dir;
use List::MoreUtils qw(any all);
symlink '../' . $client->{id}, "webdav/links/${name}";
}
+sub _webdav_folders_used {
+ my ($self, %params) = @_;
+
+ my $contains_files = 0;
+ my $wanted = sub {
+ $contains_files = 1 if -f && !m{/(?:\.gitignore|.dummy|webdav-user)$};
+ };
+
+ File::Find::find({ wanted => $wanted, no_chdir => 1 }, 'webdav');
+
+ return $contains_files;
+}
+
sub run {
my ($self) = @_;
- # WebDAV not activated? Remove old folders, and we're done.
- return $self->_unlink_old_folders if !$::lx_office_conf{features}->{webdav};
+ # WebDAV not used? Remove old folders, and we're done.
+ return $self->_unlink_old_folders if !$self->_webdav_folders_used;
# Ensure at least one client exists.
$self->_ensure_one_client_exists;