diff -Nur -x '*.orig' -x '*.rej' smeserver-shared-folders-0.1/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/shares mezzanine_patched_smeserver-shared-folders-0.1/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/shares --- smeserver-shared-folders-0.1/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/shares 2010-11-26 12:19:35.000000000 +0100 +++ mezzanine_patched_smeserver-shared-folders-0.1/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/shares 2010-11-26 12:19:33.000000000 +0100 @@ -195,6 +195,13 @@ + LABEL_WEBDAV + + WebDav support + + + + LABEL_REQUIRE_SSL Force secure connections diff -Nur -x '*.orig' -x '*.rej' smeserver-shared-folders-0.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/90e-smithAccess50shares mezzanine_patched_smeserver-shared-folders-0.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/90e-smithAccess50shares --- smeserver-shared-folders-0.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/90e-smithAccess50shares 2010-11-26 12:19:35.000000000 +0100 +++ mezzanine_patched_smeserver-shared-folders-0.1/root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/90e-smithAccess50shares 2010-11-26 12:14:07.000000000 +0100 @@ -14,6 +14,7 @@ my $allow; my $pass; my $satisfy; + my $webdav = ($properties{'WebDav'} =~ m/^(enabled|on|yes)$/i) ? 1 : 0; # Find which users has at least read access my @users = ('admin'); @@ -23,7 +24,7 @@ foreach my $group (@groups) { my $members = $adb->get_prop($group, 'Members') || ""; if (length($members) > 0) { - push @users, split (/[;,]/, $members); + push @writers, split (/[;,]/, $members); } } @@ -34,16 +35,17 @@ foreach my $group (@groups) { my $members = $adb->get_prop($group, 'Members') || ""; if (length($members) > 0) { - push @users, split (/[;,]/, $members); + push @readers, split (/[;,]/, $members); } } } my %seen = (); - my @unique = sort (grep { ! $seen{ $_ }++ } @users); + my @readers = sort (grep { ! $seen{ $_ }++ } (@readers,@writers)); - my $users = join(" ", @unique) || ''; + my $readers = join(" ", @readers) || ''; + my $writers = join(" ", @writers) || ''; if ($properties{'httpAccess'}) { @@ -52,6 +54,7 @@ $allow = "$localAccess $externalSSLAccess"; $pass = 0; $satisfy = 'all'; + $webdav = 0; } elsif ($properties{'httpAccess'} eq 'local-pw') { @@ -64,6 +67,7 @@ $allow = 'all'; $pass = 0; $satisfy = 'all'; + $webdav = 0; } elsif ($properties{'httpAccess'} eq 'global-pw') { @@ -76,6 +80,7 @@ $allow = "$localAccess $externalSSLAccess"; $pass = 1; $satisfy = 'any'; + $webdav = 0; } else{ next; @@ -132,10 +137,24 @@ $OUT .= " AuthName \"$properties{'Name'}\"\n"; $OUT .= " AuthType Basic\n"; $OUT .= " AuthExternal pwauth\n"; - $OUT .= " require user $users\n"; + $OUT .= " require user $readers\n" unless ($webdav); $OUT .= " Satisfy $satisfy\n"; } + # WebDav is enabled only when auth is required + if ($webdav) + { + $OUT .=<<"HERE"; + + Dav on + + Require user $readers + + + Require user $writers + +HERE + } $OUT .= "\n"; if ($dynamicContent eq 'enabled'){ $OUT .= "\n"; diff -Nur -x '*.orig' -x '*.rej' smeserver-shared-folders-0.1/root/etc/e-smith/web/functions/shares mezzanine_patched_smeserver-shared-folders-0.1/root/etc/e-smith/web/functions/shares --- smeserver-shared-folders-0.1/root/etc/e-smith/web/functions/shares 2010-11-26 12:19:35.000000000 +0100 +++ mezzanine_patched_smeserver-shared-folders-0.1/root/etc/e-smith/web/functions/shares 2010-11-26 12:15:09.000000000 +0100 @@ -92,6 +92,10 @@ + + + + diff -Nur -x '*.orig' -x '*.rej' smeserver-shared-folders-0.1/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/shares.pm mezzanine_patched_smeserver-shared-folders-0.1/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/shares.pm --- smeserver-shared-folders-0.1/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/shares.pm 2010-11-26 12:19:35.000000000 +0100 +++ mezzanine_patched_smeserver-shared-folders-0.1/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/shares.pm 2010-11-26 12:17:48.000000000 +0100 @@ -178,6 +178,7 @@ $q->param(-name=>'smbaccess',-value=>'browseable'); $q->param(-name=>'recyclebin',-value=>'disabled'); $q->param(-name=>'httpaccess',-value=>'none'); + $q->param(-name=>'webdav',-value=>'disabled'); $q->param(-name=>'requireSSL',-value=>'disabled'); $q->param(-name=>'indexes',-value=>'disabled'); $q->param(-name=>'dynamic',-value=>'disabled'); @@ -212,6 +213,8 @@ ($rec->prop('RecycleBin') || 'disabled')); $q->param(-name=>'httpaccess',-value=> ($rec->prop('httpAccess') || 'none')); + $q->param(-name=>'webdav',-value=> + ($rec->prop('WebDav') || 'disabled')); $q->param(-name=>'requireSSL',-value=> ($rec->prop('RequireSSL') || 'enabled')); $q->param(-name=>'indexes',-value=> @@ -460,6 +463,7 @@ RecycleBin => $self->cgi->param('recyclebin'), smbAccess => $self->cgi->param('smbaccess'), httpAccess => $self->cgi->param('httpaccess'), + WebDav => $self->cgi->param('webdav'), RequireSSL => $self->cgi->param('requireSSL'), Indexes => $self->cgi->param('indexes'), DynamicContent => $self->cgi->param('dynamic'), @@ -507,6 +511,7 @@ RecycleBin => $self->cgi->param('recyclebin'), smbAccess => $self->cgi->param('smbaccess'), httpAccess => $self->cgi->param('httpaccess'), + WebDav => $self->cgi->param('webdav'), RequireSSL => $self->cgi->param('requireSSL'), Indexes => $self->cgi->param('indexes'), DynamicContent => $self->cgi->param('dynamic'),