} else {
my ($spaces_0, $device, $spaces_1, $internet, $spaces_2, $intranet, $spaces_3, $webfilter, $remainder)
= $line =~ /^(\s*)([A-z\d\.\-]+)(\s+)(on|off|-)(\s+)(on|off|-)(\s+)(on|off|-)(.*)/;
if (defined $device) {
if ($device eq 'default') {
$is_past_default_line = 1;
$line = 'default'
. "$spaces_1$on_off{$$defaults{default}{internet}}"
. "$spaces_2$on_off{$$defaults{default}{intranet}}"
. "$spaces_3$on_off{$$defaults{default}{webfilter}}"
. "$remainder\n";
delete $$defaults{default};
} elsif ($$rooms{$device}) {
if ( exists $$defaults{$device}
and $$defaults{$device}{isset}) {
$line = "$spaces_0$device"
. "$spaces_1$on_off{$$defaults{$device}{internet}}"
. "$spaces_2$on_off{$$defaults{$device}{intranet}}"
. "$spaces_3$on_off{$$defaults{$device}{webfilter}}"
. "$remainder\n";
$$defaults{$device}{isset} = 0;
} else {
$line = "#$line";
}
} elsif (my $room = $$host_rooms{$device}) {
if ( exists $$defaults{$room}{hosts}{$device}
and $$defaults{$room}{hosts}{$device}{isset}) {
$line = "$spaces_0$device"
. "$spaces_1$on_off{$$defaults{$room}{hosts}{$device}{internet}}"
. "$spaces_2$on_off{$$defaults{$room}{hosts}{$device}{intranet}}"
. "$spaces_3$on_off{$$defaults{$room}{hosts}{$device}{webfilter}}"
. "$remainder\n";
delete $$defaults{$room}{hosts}{$device};
} else {
$line = "#$line";
}
}
}
}
# ...
my $oldsettings = $room_session->param('oldsettings');
foreach my $userdata (@{ $$workstation_users{$host} }) {
my $user = $$userdata{uid};
my $is_editing_user = ($user eq $editing_user);
foreach my $printer (@$printers) {
$block_printer_users{$printer} = []
unless $block_printer_users{$printer};
if (not exists
$$oldsettings{printers}{$printer}{DenyUser}{$user}) {
$$oldsettings{printers}{$printer}{DenyUser}{$user} =
$$printer_info{$printer}{DenyUser}{$user};
}
if ($q->param("$user;$printer;printer")) {
if ( not $do_block_printer
and $$printer_info{$printer}{DenyUser}{$user}) {
$do_block_printer = 1;
}
} elsif (not $is_editing_user) {
push @{ $block_printer_users{$printer} }, $user;
if ( not $do_block_printer
and not $$printer_info{$printer}{DenyUser}{$user}) {
$do_block_printer = 1;
}
}
}
my $user_id = $$userdata{id};
if (not exists $$oldsettings{share_states}{$user_id}) {
$$oldsettings{share_states}{$user_id}
= $$share_states{$user_id};
}