-
Notifications
You must be signed in to change notification settings - Fork 36
/
gbrowse_login
116 lines (89 loc) · 3.48 KB
/
gbrowse_login
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/usr/bin/perl -w
eval 'exec /usr/bin/perl -w -S $0 ${1+"$@"}'
if 0; # not running under some shell
eval 'exec /usr/bin/perl -w -S $0 ${1+"$@"}'
if 0; # not running under some shell
eval 'exec /usr/bin/perl -w -S $0 ${1+"$@"}'
if 0; # not running under some shell
eval 'exec /usr/bin/perl -w -S $0 ${1+"$@"}'
if 0; # not running under some shell
use strict;
use Bio::Graphics::Browser2::UserDB;
use Bio::Graphics::Browser2::Render;
our $VERSION = '$Id: gbrowse_login,v 1.1 2009-08-27 20:33:23 idavies Exp $';
umask 022;
my $fcgi = Bio::Graphics::Browser2::Render->fcgi_request;
if ($fcgi) {
my $FCGI_DONE = 0;
$SIG{USR1} = $SIG{PIPE} = $SIG{TERM} = sub {
my $sig = shift;
my $time = localtime;
print STDERR "[$time] [notice] gbrowse_login FastCGI process caught sig$sig. Exiting... (pid $$)\n";
$FCGI_DONE = 1;
};
my %sys_env = %ENV;
while (!$FCGI_DONE) {
my $status = $fcgi->Accept;
next unless $status >= 0;
%ENV = ( %sys_env, %ENV );
CGI->initialize_globals();
GBrowseLogin->run();
$fcgi->Finish();
}
}
else {
GBrowseLogin->run();
}
package GBrowseLogin;
use CGI qw(:standard);
sub run {
my %actions = map {$_=>1} param('action');
my %callback;
warn 'gbrowse_login(',join ',',param('action'),')';
my $user = param('user');
my $pass = param('pass');
my $email = param('email');
my $fullname = param('fullname');
my $sessionid = param('session');
my $remember = param('remember');
my $old = param('old_val');
my $new = param('new_val');
my $column = param('column');
my $confirm = param('confirm');
my $openid = param('openid');
my $option = param('option');
my $source = param('source');
my $userdb = Bio::Graphics::Browser2::UserDB->new(Bio::Graphics::Browser2->open_globals);
if($actions{list_openid}) {
print header('application/json');
$userdb->do_list_openid($user) if $actions{list_openid};
return;
}
if($actions{confirm_openid}) {
my $arg;
my $print = -1;
foreach(param('callback')) {
$arg = $_ if($print == -1);
$callback{$arg} = $_ if($print == 1);
$print = $print * -1;
}
print header('application/json');
$userdb->do_confirm_openid(\%callback, $sessionid, $option,$email,$fullname);
return;
}
print header();
$userdb->do_validate ($user, $pass, $remember) if $actions{validate};
$userdb->do_add_user_check ($user, $email, $fullname, $pass, $sessionid) if $actions{add_user_check};
$userdb->do_add_user ($user, $email, $fullname, $pass, $sessionid) if $actions{add_user};
$userdb->do_edit_confirmation ($email, $option) if $actions{edit_confirmation};
$userdb->do_confirm_account ($user, $confirm) if $actions{confirm_account};
$userdb->do_edit_details ($user, $column, $old, $new) if $actions{edit_details};
$userdb->do_email_info ($email) if $actions{email_info};
$userdb->do_delete_user ($user, $pass) if $actions{delete_user};
$userdb->do_add_openid_user ($user, $email,$fullname,$openid, $sessionid, $remember)
if $actions{add_openid_user};
$userdb->do_check_openid ($openid, $sessionid, $source, $option) if $actions{check_openid};
$userdb->do_change_openid ($user, $pass, $openid, $option) if $actions{change_openid};
$userdb->do_get_gecos ($user) if $actions{get_gecos};
}
__END__