/usr/lib/interchange/code/Widget/acl.widget is in interchange 5.7.7-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | # Copyright 2005-2007 Interchange Development Group and others
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version. See the LICENSE file for details.
#
# $Id: acl.widget,v 1.3 2007-03-30 23:40:58 pajamian Exp $
CodeDef acl Widget 1
CodeDef acl Description ACL Settings
CodeDef acl Routine <<EOR
sub {
my($opt) = @_;
my($name, $val) = ($opt->{name}, $opt->{value});
my $del_label = errmsg('delete');
my $n_label = errmsg('none');
my $rw_label = errmsg('read-write');
my $r_label = errmsg('read');
my $opsub =
sub {
my ($name, $val, $lab, $width) = @_;
my ($nsel, $rsel, $rwsel, $tsel) = ('', '', '', '');
#::logDebug("$val=$lab");
if ($lab =~ /n/) { $nsel = ' SELECTED' }
elsif($lab =~ /w/) { $rwsel = ' SELECTED' }
elsif($lab =~ /r/) { $rsel = ' SELECTED' }
if ($lab =~ /t/) { $tsel = ' CHECKED' }
#::logDebug("nsel=$nsel, rsel=$rsel, rwsel=$rwsel");
$val =~ s/"/"/g;
$lab =~ s/"/"/g;
$width = 16 if ! $width;
return qq{ <tr>
<td>
<input type="text" name="$name" value="$val" size="$width" style="font-size: small">
<input type="hidden" name="$name" value="=">
</td>
<td>
<select name="$name" style="font-size: small">
<option value="n"$nsel>$n_label</option>
<option value="r"$rsel>$r_label</option>
<option value="rw"$rwsel>$rw_label</option>
<option value="d">$del_label</option>
</select>
</td>
<td align=center>
<input type="checkbox" name="$name" value="t" style="font-size: small"$tsel>
<input type="hidden" name="$name" value=",">
</td>
</tr>};
};
my $width = $opt->{width} || 16;
$opt->{pre_filter} = 'hash2acl'
unless length($opt->{filter});
$opt->{filter} = 'acl2hash'
unless length($opt->{filter});
$val = Vend::Interpolate::filter_value($opt->{pre_filter}, $val);
my @opts = split /\s*,\s*/, $val;
my $out = qq{<table cellpadding="0" cellspacing="0"><tr>};
$out .= qq{<th style="font-size: small">};
$out .= errmsg('Object');
$out .= qq{</th>};
$out .= qq{<th align="left" style="font-size: small">};
$out .= errmsg('Permissions');
$out .= qq{</th>};
$out .= qq{<th align="center" style="font-size: small">};
$out .= errmsg('Allow tar');
$out .= qq{</th>};
$out .= qq{</tr>};
my $done;
my $height = $opt->{height} || 5;
$height -= 2;
for(@opts) {
my ($v,$l) = split /\s*=\s*/, $_, 2;
next unless length($v);
$done++;
$out .= $opsub->($name, $v, $l, $width);
}
while($done++ < $height) {
$out .= $opsub->($name, '', '', '', $width);
}
$out .= $opsub->($name, '', '', '', $width);
$out .= $opsub->($name, '', '', '', $width);
$out .= "</table>";
}
EOR
|