Current File : //usr/share/webmin/authentic-theme/extensions/file-manager/purge_trash.cgi
#!/usr/bin/perl

#
# Authentic Theme (https://github.com/authentic-theme/authentic-theme)
# Copyright Ilia Rostovtsev <ilia@virtualmin.com>
# Licensed under MIT (https://github.com/authentic-theme/authentic-theme/blob/master/LICENSE)
#
use strict;

use lib ($ENV{'LIBROOT'} . "/vendor_perl");

our (%access, @remote_user_info, %in, %text, $path);

require($ENV{'THEME_ROOT'} . "/extensions/file-manager/file-manager-lib.pl");

my %errors;
my $tdirname = '.Trash';
my $trashall = $in{'trash_all'};

# Delete all trashes if allowed
if ($trashall &&
    $access{'work_as_root'} &&
    !$access{'work_as_user'})
{
    &foreign_require("useradmin");
    my %uaconfig   = %useradmin::config;
    my %uaaccess   = %useradmin::access;
    my @uaallulist = &useradmin::list_users();
    my @uaulist    = &useradmin::list_allowed_users(\%uaaccess, \@uaallulist);
    return if (!$uaconfig{'home_base'} || $uaconfig{'base_uid'} !~ /^\d+$/);
    my @uahomeulist =
      grep {$_->{'home'} =~ /^\Q$uaconfig{'home_base'}\E/ && $_->{'uid'} >= $uaconfig{'base_uid'}} @uaulist;
    foreach my $uhome (@uahomeulist) {
        my $tdir = "$uhome->{'home'}/$tdirname";
        &unlink_file($tdir) if (-w $tdir);
    }
}

# Delete for the current user
elsif (-w $remote_user_info[7]) {
    my $tdir = "$remote_user_info[7]/$tdirname";
    &unlink_file($tdir) if (-w $tdir);
}

redirect_local(
           'list.cgi?path=' . urlize($path) . '&module=filemin' . '&error=' . get_errors(\%errors) . extra_query());