File: switch.cgi

package info (click to toggle)
webmin-extra 1.180-4
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 12,324 kB
  • ctags: 1,200
  • sloc: perl: 39,117; makefile: 125
file content (24 lines) | stat: -rwxr-xr-x 721 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/local/bin/perl
# Set the Usermin session cookie to be some other user

require './usermin-lib.pl';
&ReadParse();
$access{'sessions'} || &error($text{'switch_euser'});

&get_usermin_miniserv_config(\%miniserv);
&acl::open_session_db(\%miniserv);
&seed_random();
$now = time();
$sid = int(rand()*$now);
$acl::sessiondb{$sid} = "$in{'user'} $now";
dbmclose(%acl::sessiondb);
&webmin_log("switch", undef, $in{'user'});
$ssl = $miniserv{'ssl'} || $miniserv{'inetd_ssl'};
$sec = $ssl ? "; secure" : "";
$sidname = $miniserv{'sidname'} || 'sid';
print "Set-Cookie: $sidname=$sid; path=/$sec\n";
$host = $ENV{'HTTP_HOST'};
$host =~ s/:.*//;
&redirect(($ssl ? "https://" : "http://").
	  $host.":".$miniserv{'port'}."/");