Inactivity value must be numbers only
diff -Nur smeserver-shared-folders-0.1/root/etc/e-smith/web/functions/shares smeserver-shared-folders-0.1_mod/root/etc/e-smith/web/functions/shares
--- smeserver-shared-folders-0.1/root/etc/e-smith/web/functions/shares 2011-07-05 13:58:01.000000000 +0200
+++ smeserver-shared-folders-0.1_mod/root/etc/e-smith/web/functions/shares 2011-07-05 13:59:19.000000000 +0200
@@ -119,14 +119,7 @@
-
-
-
- DESC_INACTIVITY
-
-
-
diff -Nur smeserver-shared-folders-0.1/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/shares.pm smeserver-shared-folders-0.1_mod/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 2011-07-05 13:58:01.000000000 +0200
+++ smeserver-shared-folders-0.1_mod/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/shares.pm 2011-07-05 16:26:51.000000000 +0200
@@ -250,19 +250,31 @@
}
-
+# If EncFS is available, print encryptions options
sub print_encryption_fields {
my $self = shift;
+
+ return undef unless(system('rpm -q fuse-encfs 2>&1 > /dev/null') == 0);
+
my $encryption = $self->{cgi}->param('encryption') || 'disabled';
my $action = $self->{cgi}->param('action') || '';
+ my $sharename = $self->{cgi}->param('name') || '';
+
+ return undef if ($action eq 'modify' && $encryption ne 'enabled');
+
+ my $inactivity = (($sharename ne '') && ($accountdb->get($sharename))) ?
+ ($accountdb->get($sharename)->prop('Inactivity') || '30'):'30';
+
+ print_section_bar();
+
print qq() . $self->localise('DESC_ENCRYPTION') . qq( |
);
print qq() .
$self->localise('LABEL_ENCRYPTION') . qq( | \n);
if ($action eq 'modify') {
print qq(
- $encryption
+ | ) . $self->localise(uc($encryption)) . qq(
|
);
@@ -289,6 +301,14 @@
);
}
+ print qq(
) . $self->localise('DESC_INACTIVITY') . qq( |
);
+ print qq() .
+ $self->localise('INACTIVITY') . qq( | \n);
+ print qq(
+
+ |
+ );
+
print qq(
\n);
return undef;
@@ -667,10 +687,18 @@
unless ($self->cgi->param('cancel')){
if (my $acct = $accountdb->get($name)) {
if ($acct->prop('type') eq 'share') {
- $acct->set_prop('type', 'share-deleted');
-
# Untaint $name before use in system()
$name =~ /(.+)/; $name = $1;
+ my $encryption = $acct->prop('Encryption') || 'disabled';
+ my $mountstatus = `/bin/mount | grep /home/e-smith/files/shares/$name/ | grep -c fuse`;
+ chomp($mountstatus);
+ if (($encryption eq 'enabled') && ($mountstatus eq '1')){
+ $self->error("ERROR_ENCRYPTED_ENABLED");
+ return undef;
+ }
+
+ $acct->set_prop('type', 'share-deleted');
+
if (system ("/sbin/e-smith/signal-event", "share-delete", $name) == 0) {
$self->success("SUCCESSFULLY_DELETED_SHARE");
$acct->delete();
@@ -734,7 +762,8 @@
return 'OK' if ($self->{cgi}->param('encryption') eq 'disabled');
- unless (scalar (split("",$pass1)) >= 8){
+ my @num = split(//,$pass1);
+ unless (scalar (@num) >= 8){
return $self->localise('PASSWORD_TOO_SHORT');
}
diff -Nur smeserver-shared-folders-0.1/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/userpanelEncfs.pm smeserver-shared-folders-0.1_mod/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/userpanelEncfs.pm
--- smeserver-shared-folders-0.1/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/userpanelEncfs.pm 2011-07-05 13:58:01.000000000 +0200
+++ smeserver-shared-folders-0.1_mod/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/userpanelEncfs.pm 2011-07-05 16:27:07.000000000 +0200
@@ -83,7 +83,7 @@
my $sharename = $i->key();
my $sharedesc = $i->prop('Name');
- my $mountstatus = `/bin/mount | /bin/grep /home/e-smith/files/shares/$sharename | grep -c fuse`;
+ my $mountstatus = `/bin/mount | /bin/grep /home/e-smith/files/shares/$sharename/ | grep -c fuse`;
chomp($mountstatus);
my $sharestatus = ($mountstatus eq '1') ? $self->localise('MOUNTED') : $self->localise('NOT_MOUNTED');
@@ -117,8 +117,11 @@
my $rec = $accountdb->get($share);
my $timeout = $rec->prop('InactivityTimeOut') || '30';
$timeout = '30' unless ($timeout =~ m/\d+/);
+ my $recycle = $rec->prop('RecycleBin') || 'disabled';
+ my $recycledir = $rec->prop('RecycleBinDir') || 'Recycle Bin';
my $source = "/home/e-smith/files/shares/$share/.store";
my $dest = "/home/e-smith/files/shares/$share/files";
+ $pass =~ s/([;<>\*\|`&\$!#\(\)\[\]\{\}:'"])/\\$1/g;
$pass = $1 if ( $pass =~ /(.*)/ );
unless ( system("echo $pass | /usr/bin/encfs -i $timeout -S --public -o nonempty,umask=000 $source $dest > /dev/null 2>&1") == 0){
@@ -126,6 +129,12 @@
return undef;
}
+ if ( !-e $dest . '/' . $recycledir && $recycle eq 'enabled'){
+ unless(mkdir $dest . '/' . $recycledir){
+ $fm->error('ERROR_MOUNTING');
+ }
+ }
+
$fm->success('SUCCESS');
}