File inc/user/repo/artifacts/search/search.php deleted (index ceb8047..0000000) |
1 |
|
<?php |
|
2 |
|
rg_log("FILE: /inc/user/repo/bug/search/search"); |
|
3 |
|
|
|
4 |
|
$_bug_search = ""; |
|
5 |
|
$errmsg = array(); |
|
6 |
|
|
|
7 |
|
$_x = array(); |
|
8 |
|
if ($rg['doit'] == 0) { |
|
9 |
|
// defaults |
|
10 |
|
$_x['reported_by'] = ""; |
|
11 |
|
$_x['assigned_to'] = ""; |
|
12 |
|
$_x['state'] = 0; |
|
13 |
|
$_x['order_by'] = ""; |
|
14 |
|
$_x['include'] = ""; |
|
15 |
|
$_x['exclude'] = ""; |
|
16 |
|
$_x['start'] = ""; |
|
17 |
|
$_x['end'] = ""; |
|
18 |
|
$_x['title_string'] = ""; |
|
19 |
|
$_x['body_string'] = ""; |
|
20 |
|
$_x['bugs_per_page'] = 25; |
|
21 |
|
$_x['for_all_users'] = "off"; |
|
22 |
|
$_x['global'] = "off"; |
|
23 |
|
$_x['name'] = ""; |
|
24 |
|
} else { |
|
25 |
|
$_x['reported_by'] = rg_var_str('bug_search::reported_by'); |
|
26 |
|
$_x['assigned_to'] = rg_var_str('bug_search::assigned_to'); |
|
27 |
|
$_x['state'] = rg_var_uint('bug_search::state'); |
|
28 |
|
$_x['order_by'] = rg_var_str('bug_search::order_by'); |
|
29 |
|
$_x['include'] = rg_var_str('bug_search::include'); |
|
30 |
|
$_x['exclude'] = rg_var_str('bug_search::exclude'); |
|
31 |
|
$_x['start'] = rg_var_str('bug_search::start'); |
|
32 |
|
$_x['end'] = rg_var_str('bug_search::end'); |
|
33 |
|
$_x['title_string'] = rg_var_str('bug_search::title_string'); |
|
34 |
|
$_x['body_string'] = rg_var_str('bug_search::body_string'); |
|
35 |
|
$_x['bugs_per_page'] = rg_var_uint('bug_search::bugs_per_page'); |
|
36 |
|
$_x['for_all_users'] = rg_var_str('bug_search::for_all_users'); |
|
37 |
|
$_x['global'] = rg_var_str('bug_search::global'); |
|
38 |
|
$_x['name'] = rg_var_str('bug_search::name'); |
|
39 |
|
$_x['standard'] = 0; |
|
40 |
|
|
|
41 |
|
while (1) { |
|
42 |
|
$bugs = rg_bug_search($db, $rg['ri']['repo_id'], |
|
43 |
|
$rg['login_ui']['uid'], $_x); |
|
44 |
|
if ($bugs === FALSE) { |
|
45 |
|
$errmsg[] = "Cannot search bug (" . rg_bug_error() . ")."; |
|
46 |
|
break; |
|
47 |
|
} |
|
48 |
|
|
|
49 |
|
// Show bugs |
|
50 |
|
$_bug_search .= rg_template_table("repo/bug/list", $bugs, $rg); |
|
51 |
|
break; |
|
52 |
|
} |
|
53 |
|
} |
|
54 |
|
|
|
55 |
|
$rg = rg_array_merge($rg, 'bug_search', $_x); |
|
56 |
|
$rg['HTML:errmsg'] = rg_template_errmsg($errmsg); |
|
57 |
|
$_exclude = array(); |
|
58 |
|
$rg['HTML:bug_search_state_select'] = |
|
59 |
|
rg_bug_state_select($_x['state'], $_exclude); |
|
60 |
|
$_bug_search .= rg_template('repo/bug/search/search.html', $rg, TRUE /*xss*/); |
|
File inc/user/repo/artifacts/show/add_note.php deleted (index 4134fde..0000000) |
1 |
|
<?php |
|
2 |
|
rg_log("FILE: /inc/user/repo/bug/show/add_note"); |
|
3 |
|
|
|
4 |
|
$note_add_doit = rg_var_uint("note_add_doit"); |
|
5 |
|
|
|
6 |
|
$note = ""; |
|
7 |
|
|
|
8 |
|
$note_errmsg = array(); |
|
9 |
|
while (1) { |
|
10 |
|
if ($note_add_doit == 0) |
|
11 |
|
break; |
|
12 |
|
|
|
13 |
|
$note = rg_var_str("note"); |
|
14 |
|
|
|
15 |
|
if (!rg_valid_referer()) { |
|
16 |
|
$note_errmsg[] = "invalid referer; try again"; |
|
17 |
|
break; |
|
18 |
|
} |
|
19 |
|
|
|
20 |
|
if (!rg_token_valid($db, $rg, 'note_add', FALSE)) { |
|
21 |
|
$note_errmsg[] = "Invalid token. Try again."; |
|
22 |
|
break; |
|
23 |
|
} |
|
24 |
|
|
|
25 |
|
if (empty($note)) { |
|
26 |
|
$note_errmsg[] = "note cannot be empty"; |
|
27 |
|
break; |
|
28 |
|
} |
|
29 |
|
|
|
30 |
|
$x = array(); |
|
31 |
|
$x['obj_id'] = $rg['ri']['repo_id']; |
|
32 |
|
$x['type'] = 'repo'; |
|
33 |
|
$x['owner'] = $rg['ri']['uid']; |
|
34 |
|
$x['uid'] = $rg['login_ui']['uid']; |
|
35 |
|
$x['username'] = $rg['login_ui']['username']; |
|
36 |
|
$x['needed_rights'] = 'B'; |
|
37 |
|
$x['ip'] = $rg['ip']; |
|
38 |
|
$x['misc'] = ''; |
|
39 |
|
if (rg_rights_allow($db, $x) !== TRUE) { |
|
40 |
|
$note_errmsg[] = rg_template("repo/bug/note/deny_add.html", $rg, TRUE /*xss*/); |
|
41 |
|
break; |
|
42 |
|
} |
|
43 |
|
|
|
44 |
|
// add note |
|
45 |
|
$_d = array(); |
|
46 |
|
$_d['note'] = $note; |
|
47 |
|
$ret = rg_bug_note_add($db, $rg['ri']['repo_id'], $bug_id, |
|
48 |
|
$rg['login_ui']['uid'], $_d); |
|
49 |
|
if ($ret === FALSE) { |
|
50 |
|
$note_errmsg[] = "Cannot add note (" . rg_bug_error() . ")"; |
|
51 |
|
break; |
|
52 |
|
} |
|
53 |
|
|
|
54 |
|
// allow another note to be added |
|
55 |
|
$note = ""; |
|
56 |
|
break; |
|
57 |
|
} |
|
58 |
|
|
|
59 |
|
// add note form |
|
60 |
|
$rg['HTML:note_errmsg'] = rg_template_errmsg($note_errmsg); |
|
61 |
|
$rg['rg_form_token_tag'] = 'note_add'; |
|
62 |
|
$rg['rg_form_token'] = rg_token_get($db, $rg, 'note_add'); |
|
63 |
|
$rg['note'] = $note; |
|
64 |
|
$rg['HTML:note_add'] = rg_template("repo/bug/note_add.html", $rg, TRUE /* xss */); |
|
65 |
|
?> |
|
File inc/user/repo/artifacts/show/show.php deleted (index 6b55358..0000000) |
1 |
|
<?php |
|
2 |
|
rg_log("FILE: /inc/user/repo/bug/show/show"); |
|
3 |
|
|
|
4 |
|
// TODO: security checks |
|
5 |
|
|
|
6 |
|
$_bug_show = ''; |
|
7 |
|
|
|
8 |
|
$rg['HTML:bug_edit'] = ''; |
|
9 |
|
$rg['HTML:button_error'] = ''; |
|
10 |
|
$rg['HTML:bug_edit_hints'] = ''; |
|
11 |
|
|
|
12 |
|
$ibug = rg_bug_info($db, $rg['ri']['repo_id'], $rg['bug']['bug_id']); |
|
13 |
|
if ($ibug === FALSE) |
|
14 |
|
rg_fatal("Cannot lookup bug!"); |
|
15 |
|
|
|
16 |
|
$rg['bug'] = array_merge($rg['bug'], $ibug); |
|
17 |
|
|
|
18 |
|
if ($ibug['exists'] != 1) { |
|
19 |
|
$_bug_body .= rg_template("repo/bug/not_found.html", $rg, TRUE /*xss*/); |
|
20 |
|
return; |
|
21 |
|
} |
|
22 |
|
|
|
23 |
|
$x = array(); |
|
24 |
|
$x['obj_id'] = $rg['ri']['repo_id']; |
|
25 |
|
$x['type'] = 'repo'; |
|
26 |
|
$x['owner'] = $rg['ri']['uid']; |
|
27 |
|
$x['uid'] = $rg['login_ui']['uid']; |
|
28 |
|
$x['username'] = $rg['login_ui']['username']; |
|
29 |
|
$x['ip'] = $rg['ip']; |
|
30 |
|
$x['misc'] = ''; |
|
31 |
|
|
|
32 |
|
// If bug is deleted and the user does not have 'delete' rights, deny access. |
|
33 |
|
if ($ibug['deleted'] > 0) { |
|
34 |
|
$x['needed_rights'] = 'd'; |
|
35 |
|
if (rg_rights_allow($db, $x) !== TRUE) { |
|
36 |
|
$_bug_body .= rg_template("repo/bug/deleted.html", $rg, TRUE /*xss*/); |
|
37 |
|
return; |
|
38 |
|
} |
|
39 |
|
} |
|
40 |
|
|
|
41 |
|
// load labels |
|
42 |
|
$labels = rg_bug_label_get($db, $rg['ri']['repo_id'], $rg['bug']['bug_id']); |
|
43 |
|
if ($labels === FALSE) |
|
44 |
|
$rg['HTML:labels_html'] = rg_warning('Cannot load labels!', $rg); |
|
45 |
|
else |
|
46 |
|
$rg['HTML:labels_html'] = rg_bug_label_html($db, $labels); |
|
47 |
|
$rg['bug']['labels'] = implode(" ", $labels); |
|
48 |
|
|
|
49 |
|
// edit |
|
50 |
|
$rg['rg_form_token_tag'] = 'bug_edit_hl'; |
|
51 |
|
$rg['rg_form_token'] = rg_token_get($db, $rg, 'bug_edit_hl'); |
|
52 |
|
$rg['HTML:edit_form'] = rg_template("repo/bug/b_edit.html", $rg, TRUE /*xss*/); |
|
53 |
|
if (rg_var_uint("edit") == 1) |
|
54 |
|
$rg['HTML:bug_edit'] = rg_bug_edit_high_level($db, $rg); |
|
55 |
|
|
|
56 |
|
// close/re-open |
|
57 |
|
$close_reopen_error = ''; |
|
58 |
|
while (1) { |
|
59 |
|
if (rg_var_uint("close_reopen") != 1) |
|
60 |
|
break; |
|
61 |
|
|
|
62 |
|
$ibug['state'] = rg_var_uint("state"); |
|
63 |
|
$ibug['state_text'] = rg_bug_state($ibug['state']); |
|
64 |
|
|
|
65 |
|
if ($ibug['state'] == 1) { // reopen |
|
66 |
|
$x['needed_rights'] = 'r'; |
|
67 |
|
if (rg_rights_allow($db, $x) !== TRUE) { |
|
68 |
|
rg_template("repo/bug/deny_reopen.html", $rg, TRUE /*xss*/); |
|
69 |
|
break; |
|
70 |
|
} |
|
71 |
|
} else { // close |
|
72 |
|
$x['needed_rights'] = 'C'; |
|
73 |
|
if (rg_rights_allow($db, $x) !== TRUE) { |
|
74 |
|
rg_template("repo/bug/deny_close.html", $rg, TRUE /*xss*/); |
|
75 |
|
break; |
|
76 |
|
} |
|
77 |
|
} |
|
78 |
|
|
|
79 |
|
if (!rg_valid_referer()) { |
|
80 |
|
$close_reopen_error = rg_warning('Invalid referer; try again', $rg); |
|
81 |
|
break; |
|
82 |
|
} |
|
83 |
|
|
|
84 |
|
if (!rg_token_valid($db, $rg, 'close_reopen', FALSE)) { |
|
85 |
|
$close_reopen_error = rg_warning('Invalid token. Try again.', $rg); |
|
86 |
|
break; |
|
87 |
|
} |
|
88 |
|
|
|
89 |
|
$ret = rg_bug_edit($db, $rg['login_ui'], $rg['ri'], $ibug); |
|
90 |
|
if ($ret === FALSE) { |
|
91 |
|
$close_reopen_error = rg_warning('Cannot edit bug (' . rg_bug_error() . ')', $rg); |
|
92 |
|
break; |
|
93 |
|
} |
|
94 |
|
|
|
95 |
|
// TODO: do something with the error code |
|
96 |
|
break; |
|
97 |
|
} |
|
98 |
|
if ($ibug['state'] == 1) |
|
99 |
|
$t = "repo/bug/b_close.html"; |
|
100 |
|
else |
|
101 |
|
$t = "repo/bug/b_reopen.html"; |
|
102 |
|
$rg['rg_form_token_tag'] = 'close_reopen'; |
|
103 |
|
$rg['rg_form_token'] = rg_token_get($db, $rg, 'close_reopen'); |
|
104 |
|
$rg['HTML:close_form'] = rg_template($t, $rg, TRUE /*xss*/); |
|
105 |
|
if (!empty($close_reopen_error)) |
|
106 |
|
$rg['HTML:button_error'] = $close_reopen_error; |
|
107 |
|
|
|
108 |
|
|
|
109 |
|
// 'add_note' must be unconditionally included because we must insert the form |
|
110 |
|
if ($rg['allow_bug_add'] == 1) { |
|
111 |
|
include($INC . "/user/repo/bug/show/add_note.php"); |
|
112 |
|
} else { |
|
113 |
|
$rg['HTML:note_add'] = ''; |
|
114 |
|
} |
|
115 |
|
|
|
116 |
|
// load notes |
|
117 |
|
$notes = rg_bug_note_list($db, $rg['ri']['repo_id'], |
|
118 |
|
$rg['bug']['bug_id'], 0); |
|
119 |
|
if ($notes === FALSE) |
|
120 |
|
$rg['HTML:notes'] = rg_warning('Cannot load notes!', $rg); |
|
121 |
|
else |
|
122 |
|
$rg['HTML:notes'] = rg_template_table("repo/bug/list_note", $notes, $rg); |
|
123 |
|
|
|
124 |
|
|
|
125 |
|
rg_watch_hl_process($db, $rg, 'bug', $rg['ri']['repo_id'], |
|
126 |
|
$rg['bug']['bug_id'], $rg['current_url']); |
|
127 |
|
|
|
128 |
|
|
|
129 |
|
// delete/undelete |
|
130 |
|
$delete_error = ''; |
|
131 |
|
$del = $rg['bug']['deleted'] > 0; |
|
132 |
|
while (rg_var_uint('del_doit') == 1) { |
|
133 |
|
// 1 = del, 2 = undel |
|
134 |
|
$del_undel = rg_var_uint("del_undel"); |
|
135 |
|
|
|
136 |
|
if (($del_undel == 1) && $del) |
|
137 |
|
break; |
|
138 |
|
|
|
139 |
|
if (($del_undel == 2) && !$del) |
|
140 |
|
break; |
|
141 |
|
|
|
142 |
|
if (!rg_valid_referer()) { |
|
143 |
|
$delete_error = rg_warning("Invalid referer; try again", $rg); |
|
144 |
|
break; |
|
145 |
|
} |
|
146 |
|
|
|
147 |
|
if (!rg_token_valid($db, $rg, 'del_undel', FALSE)) { |
|
148 |
|
$delete_error = rg_warning("Invalid token; try again.", $rg); |
|
149 |
|
break; |
|
150 |
|
} |
|
151 |
|
|
|
152 |
|
$x['needed_rights'] = 'd'; |
|
153 |
|
if (rg_rights_allow($db, $x) !== TRUE) { |
|
154 |
|
$delete_error = rg_template("repo/bug/deny_delete.html", |
|
155 |
|
$rg, TRUE /*xss*/); |
|
156 |
|
break; |
|
157 |
|
} |
|
158 |
|
|
|
159 |
|
$r = rg_bug_delete_undelete($db, $rg['login_ui']['uid'], |
|
160 |
|
$rg['ri']['repo_id'], $ibug['bug_id'], $del_undel); |
|
161 |
|
if ($r === FALSE) { |
|
162 |
|
$delete_error = rg_warning(rg_bug_error(), $rg); |
|
163 |
|
break; |
|
164 |
|
} |
|
165 |
|
|
|
166 |
|
$del = 1 - $del; |
|
167 |
|
break; |
|
168 |
|
} |
|
169 |
|
$rg['rg_form_token_tag'] = 'del_undel:' . $rg['rg_form_token']; |
|
170 |
|
$rg['rg_form_token'] = rg_token_get($db, $rg, 'del_undel'); |
|
171 |
|
$rg['bug']['del'] = 1 - $del; |
|
172 |
|
$rg['HTML:del_form'] = rg_template('repo/bug/b_del.html', $rg, TRUE /*xss*/); |
|
173 |
|
if (!empty($delete_error)) |
|
174 |
|
$rg['HTML:button_error'] = $delete_error; |
|
175 |
|
|
|
176 |
|
|
|
177 |
|
// We must look it up again because it can be edited above; no prob, is in cache |
|
178 |
|
$ibug = rg_bug_info($db, $rg['ri']['repo_id'], $rg['bug']['bug_id']); |
|
179 |
|
if ($ibug === FALSE) |
|
180 |
|
rg_fatal("Cannot lookup bug!"); |
|
181 |
|
$rg = rg_array_merge($rg, "bug", $ibug); |
|
182 |
|
|
|
183 |
|
$_bug_show .= rg_template("repo/bug/show.html", $rg, TRUE /*xss*/); |
|
184 |
|
?> |
|