Skip to content

Commit 4404f5e

Browse files
committed
getQueryParameter
1 parent df4cf1a commit 4404f5e

File tree

7 files changed

+36
-28
lines changed

7 files changed

+36
-28
lines changed

resources/lib/UnityHTTPD.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,25 @@ public static function getPostData(string $key): mixed
235235
}
236236
}
237237

238+
/* returns null if not found and not $throw_if_not_found */
239+
public static function getQueryParameter(string $key, bool $throw_if_not_found = true): mixed
240+
{
241+
if (isset($_GET)) {
242+
self::badRequest('$_GET is unset');
243+
}
244+
if ($_GET === null) {
245+
self::badRequest('$_GET is null');
246+
}
247+
if (!array_key_exists($key, $_GET)) {
248+
if ($throw_if_not_found) {
249+
self::badRequest("\$_GET has no array key '$key'");
250+
} else {
251+
return null;
252+
}
253+
}
254+
return $_GET[$key];
255+
}
256+
238257
public static function getUploadedFileContents(
239258
string $filename,
240259
bool $do_delete_tmpfile_after_read = true,

webroot/admin/ajax/get_group_members.php

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,8 @@
99
UnityHTTPD::forbidden("not an admin");
1010
}
1111

12-
if (!isset($_GET["gid"])) {
13-
UnityHTTPD::badRequest("PI UID not set");
14-
}
15-
16-
$group = new UnityGroup($_GET["gid"], $LDAP, $SQL, $MAILER, $WEBHOOK);
12+
$gid = UnityHTTPD::getQueryParameter("gid");
13+
$group = new UnityGroup($gid, $LDAP, $SQL, $MAILER, $WEBHOOK);
1714
$members = $group->getGroupMembersAttributes(["gecos", "mail"]);
1815
$requests = $group->getRequests();
1916

webroot/admin/ajax/get_page_contents.php

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88
UnityHTTPD::forbidden("not an admin");
99
}
1010

11-
if (!isset($_GET["pageid"])) {
12-
UnityHTTPD::badRequest("Pageid not found");
13-
}
14-
15-
$page = $SQL->getPage($_GET["pageid"]);
11+
$pageid = UnityHTTPD::getQueryParameter("pageid");
12+
$page = $SQL->getPage($pageid);
1613
echo $page["content"];

webroot/api/content/index.php

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,6 @@
66

77
require_once __DIR__ . "/../../../resources/autoload.php";
88

9-
if (isset($_GET["line_wrap"])) {
10-
$CHAR_WRAP = $_GET["line_wrap"];
11-
} else {
12-
$CHAR_WRAP = 80;
13-
}
14-
15-
if (!isset($_GET["content_name"])) {
16-
UnityHTTPD::badRequest("content_name not set");
17-
}
18-
19-
echo $SQL->getPage($_GET["content_name"])["content"];
9+
$CHAR_WRAP = UnityHTTPD::getQueryParameter("line_wrap", false) ?? 80;
10+
$content_name = UnityHTTPD::getQueryParameter("content_name");
11+
echo $SQL->getPage($content_name)["content"];

webroot/js/ajax/ssh_generate.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
require "../../../resources/autoload.php";
44

55
use phpseclib3\Crypt\EC;
6+
use UnityWebPortal\lib\UnityHTTPD;
67

78
echo "<pre>";
89

@@ -13,7 +14,7 @@
1314
echo $public->toString('OpenSSH');
1415
echo "</section>";
1516
echo "<section class='privKey'>";
16-
if (isset($_GET["type"]) && $_GET["type"] == "ppk") {
17+
if (UnityHTTPD::getQueryParameter("type", false) == "ppk") {
1718
echo $private->toString('PuTTY');
1819
} else {
1920
echo $private->toString('OpenSSH');

webroot/panel/ajax/get_group_members.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,9 @@
55
use UnityWebPortal\lib\UnityGroup;
66
use UnityWebPortal\lib\UnityHTTPD;
77

8-
if (!isset($_GET["gid"])) {
9-
UnityHTTPD::badRequest("PI UID not set");
10-
}
118

12-
$group = new UnityGroup($_GET["gid"], $LDAP, $SQL, $MAILER, $WEBHOOK);
9+
$gid = UnityHTTPD::getQueryParameter("gid");
10+
$group = new UnityGroup($gid, $LDAP, $SQL, $MAILER, $WEBHOOK);
1311
if (!$group->memberExists($USER)) {
1412
UnityHTTPD::forbidden("not a group member");
1513
}

webroot/panel/modal/pi_search.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use UnityWebPortal\lib\UnityHTTPD;
66

7-
$search_query = $_GET["search"]; // Search is passed as a get var
7+
$search_query = UnityHTTPD::getQueryParameter("search");
88
if (empty($search_query)) {
99
echo "<span>No Results</span>";
1010
UnityHTTPD::die();
@@ -27,7 +27,11 @@
2727
try {
2828
$fn = strtolower($assoc_obj->getOwner()->getFullName());
2929
} catch (Throwable $e) {
30-
UnitySite::errorLog("warning", "failed to get owner name for PI group '$assoc'", error: $e);
30+
UnityHTTPD::errorLog(
31+
"warning",
32+
"failed to get owner name for PI group '$assoc'",
33+
error: $e
34+
);
3135
$fn = "";
3236
}
3337
if (strpos($fn, strtolower($search_query)) !== false) {

0 commit comments

Comments
 (0)