add_debug_user.pl
Copying Source is Forbidden
110 lines of code
1
#!/usr/local/bin/perl
2
3
# must have's!
4
use strict;
5
use warnings;
6
use CGI::Carp qw(fatalsToBrowser);
7
use DBI;
8
use URI::Escape;
9
10
use lib "/var/www/html/Pm";
11
12
use Html qw(pre_html_header header);
13
use Html2 qw(tag br hr embolden);
14
use Bc_chef qw(cookie_get);
15
use Bc_misc qw(get_param referrer);
16
use Bc_sql qw(sql_execute
17
get_constant
18
user_exists
19
$QUERY_PAGE
20
$QUERY_UID
21
$LOGGEDIN
22
is_debuggerAllowed
23
24
$DB
25
);
26
use Redir qw(notice_redir error_redir);
27
use User qw(isUserAdmin get_user_stat $DEBUGGER_ALLOWED $USER_DATA);
28
use Security qw(banned);
29
30
my $DEBUG = 0;
31
32
my $output;
33
34
if (not $DEBUGGER_ALLOWED) {
35
my $msg = "Access Denied";
36
if ($DEBUG) { $msg .= " (add_debug_user.pl)"; }
37
$output = error_redir("/", $msg);
38
} else {
39
############################################################
40
41
my $uid_to_add = get_param($QUERY_UID);
42
43
if ($uid_to_add) {
44
my $uidnn = get_user_stat($uid_to_add, "nickname");
45
my $remove = get_param("d");
46
my $allowed = is_debuggerAllowed($uid_to_add);
47
48
if ($DEBUG) {
49
$output = pre_html_header();
50
$output .= "uid: " . $uid_to_add . br;
51
$output .= "nickname: " . $uidnn . br;
52
$output .= "remove: " . $remove . br;
53
$output .= "allowed: " . $allowed . br;
54
} else {
55
if (get_user_stat($uid_to_add, "ID") eq get_constant("SITE_ADMIN")) {
56
if ($remove)
57
{ $output = error_redir(referrer(), "Remove not allowed"); } else
58
{ $output = error_redir(referrer(), "Add not allowed"); }
59
} else {
60
if ($remove) {
61
if ($allowed) {
62
my $delsql = "delete from debugger_allowed where UID=" . $DB->quote($uid_to_add);
63
64
if ($DEBUG) {
65
$output = pre_html_header();
66
$output .= header("add_debug_user.pl", "", "", "", "grants access to debugger", "");
67
$output .= $delsql;
68
} else {
69
my $r = sql_execute($delsql, "add debug user");
70
if ($r)
71
{ $output = notice_redir(referrer(), "debugger access revoked for " . embolden($uidnn)); } else
72
{ $output = error_redir(referrer(), "could not deny access to debugger for " . embolden($uidnn)); }
73
}
74
} else {
75
$output = error_redir(referrer(), "$uidnn wasn't found in the allow list");
76
}
77
} else {
78
if (not $allowed) {
79
my $addsql = "insert into debugger_allowed values (" . $DB->quote($uid_to_add) . ")";
80
81
if ($DEBUG) {
82
$output = pre_html_header();
83
$output .= header("add_debug_user.pl", "", "", "", "grants access to debugger", "");
84
$output .= $addsql;
85
} else {
86
my $r = sql_execute($addsql, "add debug user");
87
if ($r)
88
{ $output = notice_redir(referrer(), "debugger access granted to " . embolden($uidnn)); } else
89
{ $output = error_redir(referrer(), "could not grant access to debugger for " . embolden($uidnn)); }
90
}
91
} else {
92
$output = error_redir(referrer(), embolden($uidnn) . " is already on the allow list");
93
}
94
}
95
}
96
}
97
} else {
98
if ($DEBUG) {
99
$output = pre_html_header();
100
$output .= "invalid uid!";
101
} else {
102
$output = error_redir(referrer(), "Select a User First!");
103
}
104
}
105
############################################################
106
}
107
108
print $output;
109
110
exit 1;