Skip to content

Commit 0a869f3

Browse files
committed
add workers for user flags
1 parent 58a0fe0 commit 0a869f3

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed

workers/get-user-flags.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/usr/bin/env php
2+
<?php
3+
$_SERVER["HTTP_HOST"] = "worker"; // see deployment/overrides/worker
4+
5+
require_once __DIR__ . "/../resources/autoload.php";
6+
use UnityWebPortal\lib\UnityUser;
7+
use UnityWebPortal\lib\UserFlag;
8+
9+
if (sizeof($argv) != 2 or in_array($argv, ["-h", "--help"])) {
10+
die("Usage: get-user-flags.php uid\n");
11+
}
12+
13+
$uid = $argv[1];
14+
$user = new UnityUser($uid, $LDAP, $SQL, $MAILER, $WEBHOOK);
15+
if (!$user->exists()) {
16+
echo "no such user: '$uid'";
17+
exit(1);
18+
}
19+
$max_flag_strlen = max(array_map(fn($x) => strlen($x->value), UserFlag::cases()));
20+
foreach (UserFlag::cases() as $flag) {
21+
if ($user->getFlag($flag)) {
22+
echo str_pad($flag->value, $max_flag_strlen, " ", STR_PAD_RIGHT) . " 1\n";
23+
} else {
24+
echo str_pad($flag->value, $max_flag_strlen, " ", STR_PAD_RIGHT) . " 0\n";
25+
}
26+
}
27+

workers/set-user-flag.php

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#!/usr/bin/env php
2+
<?php
3+
$_SERVER["HTTP_HOST"] = "worker"; // see deployment/overrides/worker
4+
5+
require_once __DIR__ . "/../resources/autoload.php";
6+
use UnityWebPortal\lib\UnityUser;
7+
use UnityWebPortal\lib\UserFlag;
8+
9+
$flag_choices = UserFlag::cases();
10+
11+
if (sizeof($argv) != 4 or in_array($argv, ["-h", "--help"])) {
12+
die(
13+
sprintf(
14+
implode("\n", [
15+
"Usage: set-user-flag.php uid flag flag_value",
16+
"choices for flag: %s",
17+
"choices for value: 0 or 1",
18+
"",
19+
]),
20+
jsonEncode($flag_choices),
21+
)
22+
);
23+
}
24+
25+
[$_, $uid, $flag_str, $value_str] = $argv;
26+
if (!in_array($flag, $flag_choices)) {
27+
echo sprintf("invalid flag: '%s'. valid choices: %s", $flag, jsonEncode($flag_choices));
28+
exit(1);
29+
}
30+
$flag = UserFlag::from($flag_str);
31+
switch ($value_str) {
32+
case "0":
33+
$value = false;
34+
break;
35+
case "1":
36+
$value = true;
37+
break;
38+
default:
39+
print "invalid value: '$value_str'. valid values: 0 or 1";
40+
exit(1);
41+
}
42+
$user = new UnityUser($uid, $LDAP, $SQL, $MAILER, $WEBHOOK);
43+
if (!$user->exists()) {
44+
echo "no such user: '$uid'";
45+
exit(1);
46+
}
47+
$user->setFlag($flag, $value);
48+

0 commit comments

Comments
 (0)