#!/usr/bin/perl # my_user_chooser.cgi # A modified version of chooser.cgi that uses the my_ functions require './user-lib.pl'; &init_config(); &ReadParse(undef, undef, 1); if ($in{'multi'}) { # selecting multiple users. if ($in{'frame'} == 0) { # base frame &PrintHeader(); print "<script type='text/javascript'>\n"; @ul = split(/\s+/, $in{'user'}); $len = @ul; print "sel = new Array($len);\n"; print "selr = new Array($len);\n"; for($i=0; $i<$len; $i++) { print "sel[$i] = \"". "e_javascript($ul[$i])."\";\n"; @uinfo = &my_getpwnam($ul[$i]); if (@uinfo) { print "selr[$i] = \"". "e_javascript($uinfo[6])."\";\n"; } else { print "selr[$i] = \"???\";\n"; } } print "</script>\n"; print "<title>$text{'users_title1'}</title>\n"; print "<frameset cols='50%,50%'>\n"; print "<frame src=\"my_user_chooser.cgi?frame=1&multi=1\">\n"; print "<frameset rows='*,50' frameborder=no>\n"; print " <frame src=\"my_user_chooser.cgi?frame=2&multi=1\">\n"; print " <frame src=\"my_user_chooser.cgi?frame=3&multi=1\" scrolling=no>\n"; print "</frameset>\n"; print "</frameset>\n"; } elsif ($in{'frame'} == 1) { # list of all users to choose from &popup_header(); print "<script type='text/javascript'>\n"; print "function adduser(u, r)\n"; print "{\n"; print "top.sel[top.sel.length] = u\n"; print "top.selr[top.selr.length] = r\n"; print "top.frames[1].location = top.frames[1].location\n"; print "return false;\n"; print "}\n"; print "</script>\n"; print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;'>"; print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;color:#aaa;' onkeyup=\"filter_match(this.value);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';this.style.color='#000';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';this.style.color='#aaa';}\""); print &ui_hr("style='width:100%;'")."</div>"; print "<font size=+1>$text{'users_all'}</font>\n"; print "<table width=100%>\n"; $cnt = 0; foreach $u (&get_users_list()) { if ($in{'user'} eq $u->[0]) { print "<tr class='filter_match' $cb>\n"; } else { print "<tr class='filter_match'>\n"; } $u->[6] =~ s/'/'/g; print "<td width=20%>"; print &ui_link("#", $u->[0], undef, "onClick='return adduser(\"$u->[0]\", \"$u->[6]\");'"); print "</td>\n"; print "<td>$u->[6]</td> </tr>\n"; $cnt++; } print "</table>\n"; if ( $cnt >= 10 ) { print "<script type='text/javascript' src='@{[&get_webprefix()]}/unauthenticated/filter_match.js?28112013'></script>"; print "<script type='text/javascript'>filter_match_box();</script>"; } &popup_footer(); } elsif ($in{'frame'} == 2) { # show chosen users &popup_header(); print "<font size=+1>$text{'users_sel'}</font>\n"; print <<'EOF'; <table width=100%> <script type='text/javascript'> function sub(j) { sel2 = new Array(); selr2 = new Array(); for(k=0,l=0; k<top.sel.length; k++) { if (k != j) { sel2[l] = top.sel[k]; selr2[l] = top.selr[k]; l++; } } top.sel = sel2; top.selr = selr2; top.frames[1].location = top.frames[1].location; return false; } for(i=0; i<top.sel.length; i++) { document.write("<tr>\n"); document.write("<td><a href=\"\" onClick='return sub("+i+")'>"+top.sel[i]+"</a></td>\n"); document.write("<td>"+top.selr[i]+"</td>\n"); } </script> </table> EOF &popup_footer(); } elsif ($in{'frame'} == 3) { # output OK and Cancel buttons &popup_header(); print "<script type='text/javascript'>\n"; print "function qjoin(l)\n"; print "{\n"; print "rv = \"\";\n"; print "for(i=0; i<l.length; i++) {\n"; print " if (rv != '') rv += ' ';\n"; print " if (l[i].indexOf(' ') < 0) rv += l[i];\n"; print " else rv += '\"'+l[i]+'\"'\n"; print " }\n"; print "return rv;\n"; print "}\n"; print "</script>\n"; print "<form>\n"; print "<input type=button value=\"$text{'users_ok'}\" ", "onClick='top.opener.ifield.value = qjoin(top.sel); ", "top.close()'>\n"; print "<input type=button value=\"$text{'users_cancel'}\" ", "onClick='top.close()'>\n"; print " <input type=button value=\"$text{'users_clear'}\" onClick='top.sel = new Array(); top.selr = new Array(); top.frames[1].location = top.frames[1].location'>\n"; print "</form>\n"; &popup_footer(); } } else { # selecting just one user .. display a list of all users to choose from &popup_header($text{'users_title2'}); print "<script type='text/javascript'>\n"; print "function select(f)\n"; print "{\n"; print "top.opener.ifield.value = f;\n"; print "top.close();\n"; print "return false;\n"; print "}\n"; print "</script>\n"; print "<div id='filter_box' style='display:none;margin:0px;padding:0px;width:100%;clear:both;'>"; print &ui_textbox("filter",$text{'ui_filterbox'}, 50, 0, undef,"style='width:100%;color:#aaa;' onkeyup=\"filter_match(this.value);\" onfocus=\"if (this.value == '".$text{'ui_filterbox'}."') {this.value = '';this.style.color='#000';}\" onblur=\"if (this.value == '') {this.value = '".$text{'ui_filterbox'}."';this.style.color='#aaa';}\""); print &ui_hr("style='width:100%;'")."</div>"; print "<table width=100%>\n"; my $cnt = 0; foreach $u (&get_users_list()) { if ($in{'user'} eq $u->[0]) { print "<tr class='filter_match' $cb>\n"; } else { print "<tr class='filter_match'>\n"; } print "<td width=20%>"; print &ui_link("#", $u->[0], undef, "onClick='return select(\"$u->[0]\");'"); print "</td>\n"; print "<td>$u->[6]</td> </tr>\n"; $cnt++; } print "</table>\n"; if ( $cnt >= 10 ) { print "<script type='text/javascript' src='@{[&get_webprefix()]}/unauthenticated/filter_match.js?28112013'></script>"; print "<script type='text/javascript'>filter_match_box();</script>"; } &popup_footer(); } sub get_users_list { local(@uinfo, @users, %ucan); if ($access{'uedit_mode'} == 2 || $access{'uedit_mode'} == 3) { map { $ucan{$_}++ } split(/\s+/, $access{'uedit'}); } &my_setpwent(); while(@uinfo = &my_getpwent()) { if ($access{'uedit_mode'} == 0 || $access{'uedit_mode'} == 2 && $ucan{$uinfo[0]} || $access{'uedit_mode'} == 3 && !$ucan{$uinfo[0]} || $access{'uedit_mode'} == 4 && (!$access{'uedit'} || $uinfo[2] >= $access{'uedit'}) && (!$access{'uedit2'} || $uinfo[2] <= $access{'uedit2'}) || $access{'uedit_mode'} == 5 && $uinfo[3] == $access{'uedit'}) { push(@users, [ @uinfo ]); } } &my_endpwent(); return sort { $a->[0] cmp $b->[0] } @users; }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
help | Folder | 0755 |
|
|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 5.66 KB | 0644 |
|
acl_security.pl | File | 13.74 KB | 0755 |
|
aix-lib.pl | File | 1.17 KB | 0755 |
|
backup_config.pl | File | 749 B | 0755 |
|
batch_exec.cgi | File | 17.21 KB | 0755 |
|
batch_form.cgi | File | 2.42 KB | 0755 |
|
cgi_args.pl | File | 477 B | 0755 |
|
config-aix | File | 703 B | 0644 |
|
config-cobalt-linux | File | 710 B | 0644 |
|
config-coherent-linux | File | 657 B | 0644 |
|
config-corel-linux | File | 665 B | 0644 |
|
config-debian-linux | File | 665 B | 0644 |
|
config-freebsd | File | 684 B | 0644 |
|
config-generic-linux | File | 677 B | 0644 |
|
config-gentoo-linux | File | 637 B | 0644 |
|
config-hpux | File | 579 B | 0644 |
|
config-irix | File | 757 B | 0644 |
|
config-macos | File | 581 B | 0644 |
|
config-mandrake-linux | File | 662 B | 0644 |
|
config-msc-linux | File | 657 B | 0644 |
|
config-netbsd | File | 623 B | 0644 |
|
config-open-linux | File | 687 B | 0644 |
|
config-openSUSE-Linux-15.0-ALL | File | 715 B | 0644 |
|
config-openbsd | File | 636 B | 0644 |
|
config-openmamba-linux | File | 657 B | 0644 |
|
config-openserver | File | 841 B | 0644 |
|
config-osf1 | File | 579 B | 0644 |
|
config-pardus-linux | File | 665 B | 0644 |
|
config-redhat-linux-15.0-ALL | File | 659 B | 0644 |
|
config-redhat-linux-ALL-14.9 | File | 657 B | 0644 |
|
config-slackware-linux | File | 663 B | 0644 |
|
config-sol-linux | File | 657 B | 0644 |
|
config-solaris | File | 631 B | 0644 |
|
config-suse-linux | File | 677 B | 0644 |
|
config-suse-linux-9.0-ALL | File | 715 B | 0644 |
|
config-trustix-linux | File | 657 B | 0644 |
|
config-turbo-linux | File | 677 B | 0644 |
|
config-united-linux | File | 677 B | 0644 |
|
config-unixware | File | 595 B | 0644 |
|
config.info | File | 4.05 KB | 0644 |
|
config.info.bg | File | 7.87 KB | 0644 |
|
config.info.ca | File | 4.82 KB | 0644 |
|
config.info.cs | File | 4.21 KB | 0644 |
|
config.info.da | File | 3.7 KB | 0644 |
|
config.info.de | File | 4.65 KB | 0644 |
|
config.info.es | File | 4.34 KB | 0644 |
|
config.info.fa | File | 6.04 KB | 0644 |
|
config.info.fr | File | 2.77 KB | 0644 |
|
config.info.hu | File | 0 B | 0644 |
|
config.info.ja | File | 4.96 KB | 0644 |
|
config.info.nl | File | 4.61 KB | 0644 |
|
config.info.no | File | 4.12 KB | 0644 |
|
config.info.pl | File | 3.01 KB | 0644 |
|
config.info.pt_BR | File | 4.36 KB | 0644 |
|
config.info.ru | File | 4.61 KB | 0644 |
|
config.info.sv | File | 1.06 KB | 0644 |
|
config.info.tr | File | 3.69 KB | 0644 |
|
config.info.uk | File | 4.58 KB | 0644 |
|
config.info.zh | File | 961 B | 0644 |
|
config.info.zh_TW | File | 909 B | 0644 |
|
cpan_modules.pl | File | 256 B | 0755 |
|
defaultacl | File | 358 B | 0644 |
|
delete_group.cgi | File | 2.18 KB | 0755 |
|
delete_user.cgi | File | 4.67 KB | 0755 |
|
edit_group.cgi | File | 4.97 KB | 0755 |
|
edit_user.cgi | File | 18.46 KB | 0755 |
|
export_exec.cgi | File | 2.9 KB | 0755 |
|
export_form.cgi | File | 1.77 KB | 0755 |
|
freebsd-lib.pl | File | 1.74 KB | 0755 |
|
gbatch_exec.cgi | File | 8.1 KB | 0755 |
|
gbatch_form.cgi | File | 1.59 KB | 0755 |
|
gexport_exec.cgi | File | 1.73 KB | 0755 |
|
gexport_form.cgi | File | 1.26 KB | 0755 |
|
help.html | File | 6.79 KB | 0644 |
|
hpux-lib.pl | File | 1.02 KB | 0755 |
|
index.cgi | File | 7.38 KB | 0755 |
|
irix-lib.pl | File | 1.09 KB | 0755 |
|
linux-lib.pl | File | 4.75 KB | 0755 |
|
list_logins.cgi | File | 1.55 KB | 0755 |
|
list_who.cgi | File | 945 B | 0755 |
|
log_parser.pl | File | 1.68 KB | 0755 |
|
macos-lib.pl | File | 3.15 KB | 0755 |
|
mass_delete_group.cgi | File | 2.41 KB | 0755 |
|
mass_delete_user.cgi | File | 7.65 KB | 0755 |
|
md5-lib.pl | File | 7.58 KB | 0755 |
|
module.info | File | 544 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 155 B | 0644 |
|
module.info.ar | File | 173 B | 0644 |
|
module.info.ar.auto | File | 34 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 247 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 228 B | 0644 |
|
module.info.ca | File | 117 B | 0644 |
|
module.info.ca.auto | File | 27 B | 0644 |
|
module.info.cs | File | 30 B | 0644 |
|
module.info.cs.auto | File | 134 B | 0644 |
|
module.info.da | File | 27 B | 0644 |
|
module.info.da.auto | File | 116 B | 0644 |
|
module.info.de | File | 133 B | 0644 |
|
module.info.de.auto | File | 25 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 258 B | 0644 |
|
module.info.es | File | 26 B | 0644 |
|
module.info.es.auto | File | 136 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 175 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 220 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 156 B | 0644 |
|
module.info.fr | File | 32 B | 0644 |
|
module.info.fr.auto | File | 154 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 182 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 147 B | 0644 |
|
module.info.hu | File | 37 B | 0644 |
|
module.info.hu.auto | File | 156 B | 0644 |
|
module.info.it | File | 0 B | 0644 |
|
module.info.it.auto | File | 129 B | 0644 |
|
module.info.ja | File | 39 B | 0644 |
|
module.info.ja.auto | File | 175 B | 0644 |
|
module.info.ko | File | 29 B | 0644 |
|
module.info.ko.auto | File | 142 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 166 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 167 B | 0644 |
|
module.info.ms | File | 124 B | 0644 |
|
module.info.ms.auto | File | 26 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 133 B | 0644 |
|
module.info.nl | File | 30 B | 0644 |
|
module.info.nl.auto | File | 123 B | 0644 |
|
module.info.no | File | 27 B | 0644 |
|
module.info.no.auto | File | 116 B | 0644 |
|
module.info.pl | File | 122 B | 0644 |
|
module.info.pl.auto | File | 31 B | 0644 |
|
module.info.pt | File | 30 B | 0644 |
|
module.info.pt.auto | File | 124 B | 0644 |
|
module.info.pt_BR | File | 30 B | 0644 |
|
module.info.pt_BR.auto | File | 130 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 167 B | 0644 |
|
module.info.ru | File | 49 B | 0644 |
|
module.info.ru.auto | File | 208 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 177 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 163 B | 0644 |
|
module.info.sv | File | 31 B | 0644 |
|
module.info.sv.auto | File | 128 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 260 B | 0644 |
|
module.info.tr | File | 31 B | 0644 |
|
module.info.tr.auto | File | 147 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 247 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 232 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 177 B | 0644 |
|
module.info.zh | File | 24 B | 0644 |
|
module.info.zh.auto | File | 103 B | 0644 |
|
module.info.zh_TW | File | 30 B | 0644 |
|
module.info.zh_TW.auto | File | 109 B | 0644 |
|
my_group_chooser.cgi | File | 6.9 KB | 0755 |
|
my_user_chooser.cgi | File | 6.56 KB | 0755 |
|
netbsd-lib.pl | File | 1.74 KB | 0755 |
|
openbsd-lib.pl | File | 1.74 KB | 0755 |
|
openserver-lib.pl | File | 1.18 KB | 0755 |
|
osf1-lib.pl | File | 1.01 KB | 0755 |
|
prefs.info | File | 134 B | 0644 |
|
rbac-mapping | File | 190 B | 0644 |
|
save_group.cgi | File | 4.86 KB | 0755 |
|
save_user.cgi | File | 20.39 KB | 0755 |
|
search_group.cgi | File | 991 B | 0755 |
|
search_user.cgi | File | 1.33 KB | 0755 |
|
solaris-lib.pl | File | 1.78 KB | 0755 |
|
unixware-lib.pl | File | 1.13 KB | 0755 |
|
user-lib.pl | File | 71.71 KB | 0755 |
|