Mandanten-WebDAV-Upgrade: nicht an Konfigurationseinstellung sondern Existenz von...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 28 Jun 2013 09:26:03 +0000 (11:26 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 28 Jun 2013 11:22:11 +0000 (13:22 +0200)
locale/de/all
sql/Pg-upgrade2-auth/clients_webdav.pl
templates/webpages/dbupgrade/auth/clients_webdav.html
webdav/.gitignore [deleted file]

index 5c36e7b..6dfde56 100755 (executable)
@@ -1968,7 +1968,7 @@ $self->{texts} = {
   'The LDAP server "#1:#2" is unreachable. Please check config/kivitendo.conf.' => 'Der LDAP-Server "#1:#2" ist nicht erreichbar. Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/kivitendo.conf.',
   'The SEPA export has been created.' => 'Der SEPA-Export wurde erstellt',
   'The SEPA strings have been saved.' => 'Die bei SEPA-Überweisungen verwendeten Begriffe wurden gespeichert.',
-  'The WebDAV feature is activated.' => 'Das WebDAV-Feature ist aktiviert.',
+  'The WebDAV feature has been used.' => 'Das WebDAV-Feature wurde benutzt.',
   'The access rights a user has within a client instance is still governed by his group membership.' => 'Welche Zugriffsrechte ein Benutzer innerhalb eines Mandanten hat, wird weiterhin über Gruppenmitgliedschaften geregelt.',
   'The access rights have been saved.' => 'Die Zugriffsrechte wurden gespeichert.',
   'The account 3804 already exists, the update will be skipped.' => 'Das Konto 3804 existiert schon, das Update wird übersprungen.',
index 2476e8a..6f73f21 100644 (file)
@@ -9,6 +9,7 @@ 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);
@@ -81,11 +82,24 @@ sub _create_symlink {
   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;
index f560323..6fbd2f2 100644 (file)
@@ -5,7 +5,7 @@
 <h1>[%- LxERP.t8("Introduction of clients") %] -- [% LxERP.t8("Handling of WebDAV") %]</h1>
 
 <p>
- [% LxERP.t8("The WebDAV feature is activated.") %]
+ [% LxERP.t8("The WebDAV feature has been used.") %]
  [% LxERP.t8("With the introduction of clients each client gets its own WebDAV folder.") %]
  [% LxERP.t8("In order to migrate the old folder structure into the new structure you have to chose which client the old structure will be assigned to.") %]
  [% LxERP.t8("All the other clients will start with an empty set of WebDAV folders.") %]
diff --git a/webdav/.gitignore b/webdav/.gitignore
deleted file mode 100644 (file)
index d6b7ef3..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore