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 >> /usr/libexec/webmin/virtualmin-htpasswd/ |
files >> //usr/libexec/webmin/virtualmin-htpasswd/virtualmin-htpasswd-lib.pl |
# Common functions for simple protected directory management BEGIN { push(@INC, ".."); }; eval "use WebminCore;"; &init_config(); &foreign_require("htaccess-htpasswd", "htaccess-lib.pl"); &foreign_require("virtual-server", "virtual-server-lib.pl"); &foreign_require("apache", "apache-lib.pl"); # can_directory(dir, [&domain]) # Returns 1 if the current user can edit protection in the given directory sub can_directory { local ($dir, $d) = @_; if ($d) { # Just check specific domain return &is_under_directory($d->{'home'}, $dir); } else { # Check all of his domains local @doms = grep { &virtual_server::can_edit_domain($_) } &virtual_server::list_domains(); foreach my $dd (@doms) { return 1 if (&is_under_directory($dd->{'home'}, $dir)); } return 0; } } # remove_public_html(dir, &domain) # Returns a path relative to public_html, for display. If under cgi-bin, # path is relative to home. If under another domain's public_html dir, path # is relative to that. sub remove_public_html { local ($dir, $dom) = @_; local $hdir = &virtual_server::public_html_dir($dom); if ($hdir) { # Take relative to public_html or cgi-bin dir if ($hdir eq $dir) { return "<i>$text{'index_hdir'}</i>"; } local $cdir = &virtual_server::cgi_bin_dir($dom); if ($dir =~ /^\Q$hdir\E\/(.*)$/) { return $1; } elsif ($dir =~ /^\Q$cdir\E\/(.*)$/) { return $1." (CGI)"; } elsif ($dir =~ /^\Q$dom->{'home'}\E\/domains\/([^\/]+)/) { # Under a sub-server local $sd = &virtual_server::get_domain_by("dom", $1); if ($sd) { local $rv = &remove_public_html($dir, $sd); if ($rv) { return $rv." (".$sd->{'dom'}.")"; } } } # Not under either .. return full path return $dir; } else { # Take relative to home local $hdir = $dom->{'home'}; $dir =~ s/^\Q$hdir\E\///; return $dir; } } # empty_file(filename) # Returns true if a file contains no non-whitespace lines sub empty_file { local ($file) = @_; local $lref = &read_file_lines($file, 1); foreach my $l (@$lref) { return 0 if ($l =~ /\S/); } return 1; } 1;y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`