This commit is contained in:
2023-10-07 00:28:02 +00:00
parent b8e60396b8
commit 238f694e9a
6 changed files with 213 additions and 4 deletions

View File

@@ -61,6 +61,71 @@ if (isset($_REQUEST["act"])) {
returnError("Incorrect Verify Query");
}
break;
case "gemproxy":
if (isset($_REQUEST["token"])){
// Verify Encrypted Token
$EncTokenData = $_REQUEST["token"];
$TokenData = verifyEncToken($EncTokenData);
if (gettype($TokenData) == "string") {
// Invalid Token
returnError($TokenData);
}else{
// Valid Token
if (isset($_REQUEST["enable"])){
if (!userExists($TokenData["MastodonData"]->username)){
returnError("User Home Directory Not Found, try making a new SSH key.");
} else {
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 {
returnError("Incorrect Gemini Proxy Query");
}
}
}
break;
default:
returnError("Incorrect Action Query");
break;

View File

@@ -6,6 +6,14 @@ const SwalConfig = {
color: "#79F257",
background: "#022601",
buttonsStyling: false,
showClass: {
backdrop: 'swal2-noanimation',
popup: '',
icon: ''
},
hideClass: {
popup: '',
}
};
const invalidChars = ["/", "\\", ">", "<", ":", "*", "|", '"', "'", "?", "\0"];
@@ -35,7 +43,12 @@ const post = (url, data, callback) => {
},
data: data
};
$.ajax(settings).done(callback);
$.ajax(settings).done((data) => {
if (typeof data.token !== "undefined") {
localStorage.setItem("tty_token", data.token);
}
callback(data);
});
};
const saveFile = (name, type, data) => {
@@ -240,6 +253,54 @@ const logout = () => {
window.location.href = "/?msg=End%20Of%20Line.";
};
const gemini = () => {
var payload = {
token: localStorage.getItem("tty_token"),
act: "gemproxy",
enable: "get"
};
post(USE_ORIGIN + "/auth/api/index.php", payload, (response) => {
console.dir(response.data);
$.get(USE_ORIGIN + "/auth/gem.html", (ui) => {
ui = ui.replace("checked", response.data?"checked":"");
console.log(ui);
Swal.fire({
...SwalConfig,
title: "Gemini Settings",
html: ui,
willClose: (doc) => {
switch(doc.getElementsByTagName("input")[0].checked){
case true:
payload.enable = "yes";
break;
case false:
payload.enable = "no";
break;
default:
break;
}
payload.token = localStorage.getItem("tty_token");
post(USE_ORIGIN + "/auth/api/index.php", payload, (set_response) => {
if(set_response.error){
Swal.fire({
...SwalConfig,
title: "Config Failed",
text: set_response.error,
});
}else {
Swal.fire({
...SwalConfig,
title: "Success",
text: set_response.data,
});
}
});
}
});
})
});
};
$(() => {
// On Page Load
// Override domain