Gemini bridge control

This commit is contained in:
2023-10-06 20:01:24 -04:00
parent 09b2f7a24f
commit 7c811a546e
7 changed files with 264 additions and 24 deletions

View File

@@ -72,22 +72,51 @@ if (isset($_REQUEST["act"])) {
}else{
// Valid Token
if (isset($_REQUEST["enable"])){
$userHomeDir = shell_exec("eval echo ~".$TokenData["MastodonData"]->username);
if (!file_exists($userHomeDir)){
if (!userExists($TokenData["MastodonData"]->username)){
returnError("User Home Directory Not Found, try making a new SSH key.");
} else {
if (file_exists($userHomeDir."/public_gemini")){
mkdir($userHomeDir."/public_gemini", 0755);
}
$EnableFile = $userHomeDir."/public_gemini/.serve_ok";
if ($_REQUEST["enable"] == 1){
if (!file_exists($EnableFile)){
file_put_contents($EnableFile, "web_gen");
}
}else{
if (file_exists($EnableFile)){
unlink($EnableFile);
}
switch ($_REQUEST["enable"]){
case "yes":
shell_exec("/usr/bin/sudo /etc/ttyserver/bin/toggleProxy enable \"".$TokenData["MastodonData"]->username."\"");
returnSuccess("Gemini Proxy Enabled", buildEncToken($TokenData["AuthToken"],
$TokenData["UserID"],
$_SERVER["REMOTE_ADDR"],
$_SERVER["HTTP_USER_AGENT"]));
break;
case "no":
$result = trim(shell_exec("/usr/bin/sudo /etc/ttyserver/bin/toggleProxy disable \"".$TokenData["MastodonData"]->username."\""));
switch($result){
case "done":
returnSuccess("Gemini Proxy Disabled", buildEncToken($TokenData["AuthToken"],
$TokenData["UserID"],
$_SERVER["REMOTE_ADDR"],
$_SERVER["HTTP_USER_AGENT"]
));
break;
case "no_perm":
returnError("Gemini Proxy Disable Failed, error_p");
break;
case "no_dir":
returnError("Gemini Directory Not Found");
break;
default:
returnError("Gemini Proxy Disable Failed, error_u");
break;
}
break;
case "get":
$result = trim(shell_exec("/usr/bin/sudo /etc/ttyserver/bin/toggleProxy get \"".$TokenData["MastodonData"]->username."\""));
returnSuccess(($result == "enabled"), buildEncToken($TokenData["AuthToken"],
$TokenData["UserID"],
$_SERVER["REMOTE_ADDR"],
$_SERVER["HTTP_USER_AGENT"]
));
break;
default:
returnError("Incorrect Gemini Proxy Query");
break;
}
}
}else {