Commenting
This commit is contained in:
parent
c54f3c4a03
commit
b13106ee54
@ -2,19 +2,22 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
|
//Check if the user is allowed to create functions
|
||||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "create_function")) {
|
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "create_function")) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Create function
|
||||||
$function = $LonaDB->FunctionManager->Create($data['function']['name'], $data['function']['content']);
|
$function = $LonaDB->FunctionManager->Create($data['function']['name'], $data['function']['content']);
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => true, "process" => $data['process']]);
|
$response = json_encode(["success" => true, "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
|
|
||||||
//Run plugin event
|
//Run plugin event
|
||||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "functionCreate", [ "name" => $data['function']['name'], "content" => $data['function']['content'] ]);
|
$LonaDB->PluginManager->RunEvent($data['login']['name'], "functionCreate", [ "name" => $data['function']['name'], "content" => $data['function']['content'] ]);
|
||||||
}
|
}
|
||||||
|
@ -2,26 +2,32 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
|
//Check if user has been defined
|
||||||
if(!$data['permission']['user']) {
|
if(!$data['permission']['user']) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "missing_user", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "missing_user", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if user has the permission so add permissions to others
|
||||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "permission_add")) {
|
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "permission_add")) {
|
||||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to add a permission without permission");
|
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to add a permission without permission");
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Add permission to user
|
||||||
$LonaDB->UserManager->AddPermission($data['permission']['user'], $data['permission']['name'], $data['login']['name']);
|
$LonaDB->UserManager->AddPermission($data['permission']['user'], $data['permission']['name'], $data['login']['name']);
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => true, "process" => $data['process']]);
|
$response = json_encode(["success" => true, "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
|
|
||||||
//Run plugin event
|
//Run plugin event
|
||||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "permissionAdd", [ "user" => $data['permission']['user'], "name" => $data['permission']['name'] ]);
|
$LonaDB->PluginManager->RunEvent($data['login']['name'], "permissionAdd", [ "user" => $data['permission']['user'], "name" => $data['permission']['name'] ]);
|
||||||
}
|
}
|
||||||
|
@ -2,30 +2,40 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
|
//Check if the user and password to check have been set
|
||||||
if(!$data['checkPass']['name'] || !$data['checkPass']['pass']) {
|
if(!$data['checkPass']['name'] || !$data['checkPass']['pass']) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "missing_arguments", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "missing_arguments", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Hash the process ID
|
||||||
$key = hash('sha256', $data['process'], true);
|
$key = hash('sha256', $data['process'], true);
|
||||||
|
//Split encrypted password from IV
|
||||||
$parts = explode(':', $data['checkPass']['pass']);
|
$parts = explode(':', $data['checkPass']['pass']);
|
||||||
$iv = hex2bin($parts[0]);
|
$iv = hex2bin($parts[0]);
|
||||||
$ciphertext = hex2bin($parts[1]);
|
$ciphertext = hex2bin($parts[1]);
|
||||||
|
//Decrypt password
|
||||||
$password = openssl_decrypt($ciphertext, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
|
$password = openssl_decrypt($ciphertext, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
|
||||||
|
|
||||||
|
//Check if user has permission to check passwords
|
||||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "password_check")) {
|
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "password_check")) {
|
||||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to check a password without permission");
|
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to check a password without permission");
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check the password
|
||||||
$checkPassword = $LonaDB->UserManager->CheckPassword($data['checkPass']['name'], $password);
|
$checkPassword = $LonaDB->UserManager->CheckPassword($data['checkPass']['name'], $password);
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => true, "passCheck" => $checkPassword, "process" => $data['process']]);
|
$response = json_encode(["success" => true, "passCheck" => $checkPassword, "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
}
|
}
|
||||||
|
@ -2,24 +2,30 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
|
//Check if needed parameters have been set
|
||||||
if(!$data['permission'] || !$data['permission']['name'] || !$data['permission']['user']){
|
if(!$data['permission'] || !$data['permission']['name'] || !$data['permission']['user']){
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "missing_arguments", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "missing_arguments", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if user has the needed permissions
|
||||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "permission_check")) {
|
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "permission_check")) {
|
||||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to check a permission without permission");
|
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to check a permission without permission");
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if the user has the permission
|
||||||
$permission = $LonaDB->UserManager->CheckPermission($data['permission']['user'], $data['permission']['name'], $data['login']['name']);
|
$permission = $LonaDB->UserManager->CheckPermission($data['permission']['user'], $data['permission']['name'], $data['login']['name']);
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => true, "result" => $permission, "process" => $data['process']]);
|
$response = json_encode(["success" => true, "result" => $permission, "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
}
|
}
|
||||||
|
@ -2,41 +2,49 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
|
//Check if user is allowed to create tables
|
||||||
if (!$LonaDB->UserManager->CheckPermission($data['login']['name'], "table_create")) {
|
if (!$LonaDB->UserManager->CheckPermission($data['login']['name'], "table_create")) {
|
||||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to create a table without permission");
|
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to create a table without permission");
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if table name has been set
|
||||||
if (empty($data['table']['name'])) {
|
if (empty($data['table']['name'])) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "bad_table_name", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "bad_table_name", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if user is trying to create a system table and if they are root
|
||||||
if(str_starts_with($data['table']['name'], "system.") && $data['login']['name'] !== "root"){
|
if(str_starts_with($data['table']['name'], "system.") && $data['login']['name'] !== "root"){
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "not_root", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "not_root", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if table already exists
|
||||||
$table = $LonaDB->TableManager->CreateTable($data['table']['name'], $data['login']['name']);
|
$table = $LonaDB->TableManager->CreateTable($data['table']['name'], $data['login']['name']);
|
||||||
|
|
||||||
if(!$table){
|
if(!$table){
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "table_exists", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "table_exists", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => true, "process" => $data['process']]);
|
$response = json_encode(["success" => true, "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
|
|
||||||
//Run plugin event
|
//Run plugin event
|
||||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "tableCreate", [ "name" => $data['table']['name'] ]);
|
$LonaDB->PluginManager->RunEvent($data['login']['name'], "tableCreate", [ "name" => $data['table']['name'] ]);
|
||||||
}
|
}
|
||||||
|
@ -2,44 +2,49 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
|
//Check if username and password have been set
|
||||||
if(!$data['user']['name'] || !$data['user']['password']){
|
if(!$data['user']['name'] || !$data['user']['password']){
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "missing_arguments", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "missing_arguments", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Hash process ID
|
||||||
$key = hash('sha256', $data['process'], true);
|
$key = hash('sha256', $data['process'], true);
|
||||||
|
//Split encrypted password from IV
|
||||||
$parts = explode(':', $data['user']['password']);
|
$parts = explode(':', $data['user']['password']);
|
||||||
$iv = hex2bin($parts[0]);
|
$iv = hex2bin($parts[0]);
|
||||||
$ciphertext = hex2bin($parts[1]);
|
$ciphertext = hex2bin($parts[1]);
|
||||||
|
//Decrypt password
|
||||||
$password = openssl_decrypt($ciphertext, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
|
$password = openssl_decrypt($ciphertext, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
|
||||||
|
//Check if user is allowed to create new users
|
||||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "user_create")){
|
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "user_create")){
|
||||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to create a user without permission");
|
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to create a user without permission");
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if a user with that name already exists
|
||||||
|
|
||||||
if($LonaDB->UserManager->CheckUser($data['user']['name'])){
|
if($LonaDB->UserManager->CheckUser($data['user']['name'])){
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "user_exist", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "user_exist", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Create user
|
||||||
$result = $LonaDB->UserManager->CreateUser($data['user']['name'], $password);
|
$result = $LonaDB->UserManager->CreateUser($data['user']['name'], $password);
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => $result, "process" => $data['process']]);
|
$response = json_encode(["success" => $result, "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
if(!$result) $response['err'] = "user_exists";
|
|
||||||
|
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
|
|
||||||
//Run plugin event
|
//Run plugin event
|
||||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "userCreate", [ "name" => $data['user']['name'] ]);
|
$LonaDB->PluginManager->RunEvent($data['login']['name'], "userCreate", [ "name" => $data['user']['name'] ]);
|
||||||
}
|
}
|
||||||
|
@ -2,19 +2,22 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "create_function")) {
|
//Check if user is allowed to delete functions
|
||||||
|
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "delete_function")) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Delete the function
|
||||||
$function = $LonaDB->FunctionManager->Delete($data['function']['name']);
|
$function = $LonaDB->FunctionManager->Delete($data['function']['name']);
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => true, "process" => $data['process']]);
|
$response = json_encode(["success" => true, "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
|
|
||||||
//Run plugin event
|
//Run plugin event
|
||||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "functionDelete", [ "name" => $data['function']['name'] ]);
|
$LonaDB->PluginManager->RunEvent($data['login']['name'], "functionDelete", [ "name" => $data['function']['name'] ]);
|
||||||
}
|
}
|
||||||
|
@ -2,48 +2,49 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
if (!$LonaDB->UserManager->CheckPermission($data['login']['name'], "table_delete")) {
|
//Check if the table name is in the parameters
|
||||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to delete a table without permission");
|
|
||||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
|
||||||
socket_write($client, $response);
|
|
||||||
socket_close($client);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($data['table']['name'])) {
|
if (empty($data['table']['name'])) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "bad_table_name", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "bad_table_name", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if user is allowed to delete tables
|
||||||
|
if (!$LonaDB->UserManager->CheckPermission($data['login']['name'], "table_delete")) {
|
||||||
|
//Create response array
|
||||||
|
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
|
socket_write($client, $response);
|
||||||
|
socket_close($client);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//Check if the table exists
|
||||||
if(!$LonaDB->TableManager->GetTable($data['table']['name'])) {
|
if(!$LonaDB->TableManager->GetTable($data['table']['name'])) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "table_missing", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "table_missing", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if user owns the table
|
||||||
if($LonaDB->TableManager->GetTable($data['table']['name'])->GetOwner() !== $data['login']['name'] && $LonaDB->UserManager->GetRole($data['login']['name']) !== "Administrator" && $LonaDB->UserManager->GetRole($data['login']['name']) !== "Superuser") {
|
if($LonaDB->TableManager->GetTable($data['table']['name'])->GetOwner() !== $data['login']['name'] && $LonaDB->UserManager->GetRole($data['login']['name']) !== "Administrator" && $LonaDB->UserManager->GetRole($data['login']['name']) !== "Superuser") {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "not_table_owner", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "not_table_owner", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Delete the table
|
||||||
$table = $LonaDB->TableManager->DeleteTable($data['table']['name'], $data['login']['name']);
|
$table = $LonaDB->TableManager->DeleteTable($data['table']['name'], $data['login']['name']);
|
||||||
|
//Create response array
|
||||||
if(!$table){
|
|
||||||
$response = json_encode(["success" => false, "err" => "table_doesnt_exist", "process" => $data['process']]);
|
|
||||||
socket_write($client, $response);
|
|
||||||
socket_close($client);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$response = json_encode(["success" => true, "process" => $data['process']]);
|
$response = json_encode(["success" => true, "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
|
|
||||||
//Run plugin event
|
//Run plugin event
|
||||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "tableDelete", [ "name" => $data['table']['name'] ]);
|
$LonaDB->PluginManager->RunEvent($data['login']['name'], "tableDelete", [ "name" => $data['table']['name'] ]);
|
||||||
}
|
}
|
||||||
|
@ -2,37 +2,40 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
|
//Check if name has been set
|
||||||
if(!$data['user']['name']){
|
if(!$data['user']['name']){
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "missing_arguments", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "missing_arguments", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if user is allowed to delete users
|
||||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "user_delete")){
|
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "user_delete")){
|
||||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to delete a user without permission");
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if user exists
|
||||||
if(!$LonaDB->UserManager->CheckUser($data['user']['name'])){
|
if(!$LonaDB->UserManager->CheckUser($data['user']['name'])){
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "user_doesnt_exist", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "user_doesnt_exist", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Delete user
|
||||||
$result = $LonaDB->UserManager->DeleteUser($data['user']['name'], $data['user']['password']);
|
$result = $LonaDB->UserManager->DeleteUser($data['user']['name'], $data['user']['password']);
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => $result, "process" => $data['process']]);
|
$response = json_encode(["success" => $result, "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
if(!$result) $response['err'] = "user_doesnt_exist";
|
|
||||||
|
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
|
|
||||||
//Run plugin event
|
//Run plugin event
|
||||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "userDelete", [ "name" => $data['table']['name'] ]);
|
$LonaDB->PluginManager->RunEvent($data['login']['name'], "userDelete", [ "name" => $data['table']['name'] ]);
|
||||||
}
|
}
|
||||||
|
@ -5,11 +5,14 @@ use LonaDB\LonaDB;
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
if ($data['login']['name'] !== 'root') {
|
//Check if user is root (only root is allowed to use eval)
|
||||||
|
if ($LonaDB->UserManager->GetRole($data['login']['name']) !== "Superuser") {
|
||||||
|
//Send response
|
||||||
$this->sendErrorResponse($client, "not_root", $data['process']);
|
$this->sendErrorResponse($client, "not_root", $data['process']);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Generate eval script to create a class with the desired function
|
||||||
$functionName = $data['process'];
|
$functionName = $data['process'];
|
||||||
$evalFunction = "
|
$evalFunction = "
|
||||||
\$functions['$functionName'] = new class {
|
\$functions['$functionName'] = new class {
|
||||||
@ -20,35 +23,42 @@ return new class {
|
|||||||
";
|
";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
//Run the script
|
||||||
eval($evalFunction);
|
eval($evalFunction);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
//Execute the function
|
||||||
$answer = $functions[$functionName]->Execute($LonaDB);
|
$answer = $functions[$functionName]->Execute($LonaDB);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
//Catch errors
|
||||||
$answer = $e->getMessage();
|
$answer = $e->getMessage();
|
||||||
}
|
}
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
|
//Catch errors
|
||||||
$answer = $e->getMessage();
|
$answer = $e->getMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Send response and close socket
|
||||||
$this->sendSuccessResponse($client, $answer, $data['process']);
|
$this->sendSuccessResponse($client, $answer, $data['process']);
|
||||||
socket_close($client);
|
|
||||||
|
|
||||||
// Remove the function from the $functions array
|
// Remove the function from the $functions array
|
||||||
unset($functions[$functionName]);
|
unset($functions[$functionName]);
|
||||||
|
|
||||||
//Run plugin event
|
//Run plugin event
|
||||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "eval", [ "content" => $data['function'] ]);
|
$LonaDB->PluginManager->RunEvent($data['login']['name'], "eval", [ "content" => $data['function'] ]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function sendErrorResponse($client, $error, $process): void {
|
private function sendErrorResponse($client, $error, $process): void {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => $error, "process" => $process]);
|
$response = json_encode(["success" => false, "err" => $error, "process" => $process]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function sendSuccessResponse($client, $response, $process): void {
|
private function sendSuccessResponse($client, $response, $process): void {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => true, "response" => $response, "process" => $process]);
|
$response = json_encode(["success" => true, "response" => $response, "process" => $process]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
|
socket_close($client);
|
||||||
}
|
}
|
||||||
};
|
};
|
@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
|
//Get function from FunctionManager
|
||||||
$function = $LonaDB->FunctionManager->GetFunction($data['name']);
|
$function = $LonaDB->FunctionManager->GetFunction($data['name']);
|
||||||
|
//Execute function
|
||||||
$function->Execute($LonaDB, $data, $client);
|
$function->Execute($LonaDB, $data, $client);
|
||||||
|
|
||||||
//Run plugin event
|
//Run plugin event
|
||||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "functionExecute", [ "name" => $data['name'] ]);
|
$LonaDB->PluginManager->RunEvent($data['login']['name'], "functionExecute", [ "name" => $data['name'] ]);
|
||||||
}
|
}
|
||||||
|
@ -2,24 +2,30 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
if($data['login']['name'] !== "root" && $LonaDB->UserManager->GetRole($data['login']['name']) !== "Administrator"){
|
//Check if user is Administrator or Superuser
|
||||||
|
if($LonaDB->UserManager->GetRole($data['login']['name']) !== "Superuser" && $LonaDB->UserManager->GetRole($data['login']['name']) !== "Administrator"){
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "not_allowed", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "not_allowed", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if user exists
|
||||||
if(!$LonaDB->UserManager->CheckUser($data['user'])){
|
if(!$LonaDB->UserManager->CheckUser($data['user'])){
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "user_doesnt_exist", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "user_doesnt_exist", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Get permissions array
|
||||||
$permissions = $LonaDB->UserManager->GetPermissions($data['user']);
|
$permissions = $LonaDB->UserManager->GetPermissions($data['user']);
|
||||||
|
//Create response array
|
||||||
if($permissions === []) $response = '{ "success": true, "list": {}, "role": "' . $LonaDB->UserManager->GetRole($data['user']) . '", "process": "'.$data['process'].'" }';
|
if($permissions === []) $response = '{ "success": true, "list": {}, "role": "' . $LonaDB->UserManager->GetRole($data['user']) . '", "process": "'.$data['process'].'" }';
|
||||||
else $response = json_encode(["success" => true, "list" => $permissions, "role" => $LonaDB->UserManager->GetRole($data['user']), "process" => $data['process']]);
|
else $response = json_encode(["success" => true, "list" => $permissions, "role" => $LonaDB->UserManager->GetRole($data['user']), "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
}
|
}
|
||||||
|
@ -2,24 +2,30 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
|
//Check if table exists
|
||||||
if(!$LonaDB->TableManager->GetTable($data['table'])) {
|
if(!$LonaDB->TableManager->GetTable($data['table'])) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "table_missing", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "table_missing", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if user has read permissions on desired table
|
||||||
if(!$LonaDB->TableManager->GetTable($data['table'])->CheckPermission($data['login']['name'], "read")) {
|
if(!$LonaDB->TableManager->GetTable($data['table'])->CheckPermission($data['login']['name'], "read")) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "missing_permissions", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "missing_permissions", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Get table data array
|
||||||
$tableData = $LonaDB->TableManager->getTable($data['table'])->GetData();
|
$tableData = $LonaDB->TableManager->getTable($data['table'])->GetData();
|
||||||
|
//Create response array
|
||||||
if($tableData === []) $response = '{ "success": true, "data": {}, "process": "'.$data['process'].'" }';
|
if($tableData === []) $response = '{ "success": true, "data": {}, "process": "'.$data['process'].'" }';
|
||||||
else $response = json_encode(["success" => true, "data" => $tableData, "process" => $data['process']]);
|
else $response = json_encode(["success" => true, "data" => $tableData, "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
}
|
}
|
||||||
|
@ -2,29 +2,34 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
|
//Check if tables for executing user have been requested
|
||||||
$user = null;
|
$user = null;
|
||||||
if(!$data['user']) $user = $data['login']['name'];
|
if(!$data['user']) $user = $data['login']['name'];
|
||||||
else $user = $data['user'];
|
else $user = $data['user'];
|
||||||
|
//If checking for someone else
|
||||||
if($user !== $data['login']['name']){
|
if($user !== $data['login']['name']){
|
||||||
|
//If user isn't allowed to request table array
|
||||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "get_tables")){
|
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "get_tables")){
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "missing_permission", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "missing_permission", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
|
socket_write($client, $response);
|
||||||
|
socket_close($client);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//Check if requested user exists
|
||||||
|
if(!$LonaDB->UserManager->CheckUser($user)){
|
||||||
|
$response = json_encode(["success" => false, "err" => "user_doesnt_exist", "process" => $data['process']]);
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//Get tables array
|
||||||
if(!$LonaDB->UserManager->CheckUser($user)){
|
|
||||||
$response = json_encode(["success" => false, "err" => "user_doesnt_exist", "process" => $data['process']]);
|
|
||||||
socket_write($client, $response);
|
|
||||||
socket_close($client);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$tables = $LonaDB->TableManager->ListTables($user);
|
$tables = $LonaDB->TableManager->ListTables($user);
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => true, "tables" => $tables, "process" => $data['process']]);
|
$response = json_encode(["success" => true, "tables" => $tables, "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
}
|
}
|
||||||
|
@ -2,16 +2,20 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
|
//Check if user is allowed to request a users array
|
||||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "get_users")){
|
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "get_users")){
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "missing_permission", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "missing_permission", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Get users array
|
||||||
$users = $LonaDB->UserManager->ListUsers();
|
$users = $LonaDB->UserManager->ListUsers();
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => true, "users" => $users, "process" => $data['process']]);
|
$response = json_encode(["success" => true, "users" => $users, "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
}
|
}
|
||||||
|
@ -2,36 +2,36 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
if (!$data['table']['name']) {
|
//Check if parameters have been set
|
||||||
$response = json_encode(["success" => false, "err" => "bad_table_name", "process" => $data['process']]);
|
if (!$data['table']['name'] || !$data['variable']['name']) {
|
||||||
|
//Create response array
|
||||||
|
$response = json_encode(["success" => false, "err" => "missing_parameters", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if table exists
|
||||||
if(!$LonaDB->TableManager->GetTable($data['table']['name'])) {
|
if(!$LonaDB->TableManager->GetTable($data['table']['name'])) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "table_missing", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "table_missing", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if user is allowed to read in desired table
|
||||||
if (!$LonaDB->TableManager->GetTable($data['table']['name'])->CheckPermission($data['login']['name'], "read")){
|
if (!$LonaDB->TableManager->GetTable($data['table']['name'])->CheckPermission($data['login']['name'], "read")){
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "missing_permissions", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "missing_permissions", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Get variable value
|
||||||
if (!$data['variable']['name']) {
|
|
||||||
$response = json_encode(["success" => false, "err" => "bad_variable_name", "process" => $data['process']]);
|
|
||||||
socket_write($client, $response);
|
|
||||||
socket_close($client);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$value = $LonaDB->TableManager->GetTable($data['table']['name'])->Get($data['variable']['name'], $data['login']['name']);
|
$value = $LonaDB->TableManager->GetTable($data['table']['name'])->Get($data['variable']['name'], $data['login']['name']);
|
||||||
|
//Create response array
|
||||||
$response = [
|
$response = [
|
||||||
"variable" => [
|
"variable" => [
|
||||||
"name" => $data['variable']['name'],
|
"name" => $data['variable']['name'],
|
||||||
@ -40,28 +40,30 @@ return new class {
|
|||||||
"success" => false,
|
"success" => false,
|
||||||
"process" => $data['process']
|
"process" => $data['process']
|
||||||
];
|
];
|
||||||
|
//Check if there has been an error
|
||||||
if (is_array($value) && isset($value['err'])) {
|
if (is_array($value) && isset($value['err'])) {
|
||||||
$value['process'] = $data['process'];
|
$value['process'] = $data['process'];
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, json_encode($value));
|
socket_write($client, json_encode($value));
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if variable exists
|
||||||
if ($value === null) {
|
if ($value === null) {
|
||||||
|
//Create response array
|
||||||
$response = [
|
$response = [
|
||||||
"success" => false,
|
"success" => false,
|
||||||
"err" => "variable_undefined",
|
"err" => "variable_undefined",
|
||||||
"process" => $data['process']
|
"process" => $data['process']
|
||||||
];
|
];
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, json_encode($response));
|
socket_write($client, json_encode($response));
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
$response['variable']['value'] = $value;
|
$response['variable']['value'] = $value;
|
||||||
$response['success'] = true;
|
$response['success'] = true;
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, json_encode($response));
|
socket_write($client, json_encode($response));
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
|
@ -2,26 +2,31 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
|
//Check if username has been set
|
||||||
if(!$data['permission']['user']) {
|
if(!$data['permission']['user']) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "missing_user", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "missing_user", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if user is allowed to remove permissions
|
||||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "permission_remove")) {
|
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "permission_remove")) {
|
||||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to add a permission without permission");
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Remove permission
|
||||||
$LonaDB->UserManager->RemovePermission($data['permission']['user'], $data['permission']['name'], $data['login']['name']);
|
$LonaDB->UserManager->RemovePermission($data['permission']['user'], $data['permission']['name'], $data['login']['name']);
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => true, "process" => $data['process']]);
|
$response = json_encode(["success" => true, "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
|
|
||||||
//Run plugin event
|
//Run plugin event
|
||||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "permissionRemove", [ "user" => $data['permission']['user'], "name" => $data['permission']['name'] ]);
|
$LonaDB->PluginManager->RunEvent($data['login']['name'], "permissionRemove", [ "user" => $data['permission']['user'], "name" => $data['permission']['name'] ]);
|
||||||
}
|
}
|
||||||
|
@ -2,51 +2,52 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
if (!$data['table']['name']) {
|
//Check if parameters exist
|
||||||
$response = json_encode(["success" => false, "err" => "bad_table_name", "process" => $data['process']]);
|
if (!$data['table']['name'] || !$data['variable']['name']) {
|
||||||
|
//Create response array
|
||||||
|
$response = json_encode(["success" => false, "err" => "missing_parameters", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if table exists
|
||||||
if(!$LonaDB->TableManager->GetTable($data['table']['name'])) {
|
if(!$LonaDB->TableManager->GetTable($data['table']['name'])) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "table_missing", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "table_missing", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if user has read permissions on the desired table
|
||||||
if (!$data['variable']['name']) {
|
|
||||||
$response = json_encode(["success" => false, "err" => "bad_variable_name", "process" => $data['process']]);
|
|
||||||
socket_write($client, $response);
|
|
||||||
socket_close($client);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$LonaDB->TableManager->GetTable($data['table']['name'])->CheckPermission($data['login']['name'], "read")) {
|
if (!$LonaDB->TableManager->GetTable($data['table']['name'])->CheckPermission($data['login']['name'], "read")) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Check if variable exists
|
||||||
if(!$LonaDB->TableManager->GetTable($data['table']['name'])->CheckVariable($data['variable']['name'], $data['login']['name'])){
|
if(!$LonaDB->TableManager->GetTable($data['table']['name'])->CheckVariable($data['variable']['name'], $data['login']['name'])){
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "missing_variable", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "missing_variable", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Delete variable
|
||||||
$LonaDB->TableManager->GetTable($data['table']['name'])->Delete($data['variable']['name'], $data['login']['name']);
|
$LonaDB->TableManager->GetTable($data['table']['name'])->Delete($data['variable']['name'], $data['login']['name']);
|
||||||
|
//Create response array
|
||||||
$response = [
|
$response = [
|
||||||
"success" => true,
|
"success" => true,
|
||||||
"process" => $data['process']
|
"process" => $data['process']
|
||||||
];
|
];
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, json_encode($response));
|
socket_write($client, json_encode($response));
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
|
|
||||||
//Run plugin event
|
//Run plugin event
|
||||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "valueRemove", [ "name" => $data['variable']['name'] ]);
|
$LonaDB->PluginManager->RunEvent($data['login']['name'], "valueRemove", [ "name" => $data['variable']['name'] ]);
|
||||||
return;
|
return;
|
||||||
|
@ -2,54 +2,47 @@
|
|||||||
|
|
||||||
return new class {
|
return new class {
|
||||||
public function run($LonaDB, $data, $client) : void {
|
public function run($LonaDB, $data, $client) : void {
|
||||||
if (empty($data['table']['name'])) {
|
//Check if parameter has been set
|
||||||
|
if (empty($data['table']['name']) || empty($data['variable']['name']) || empty($data['variable']['value'])) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "bad_table_name", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "bad_table_name", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Grab table name
|
||||||
$tableName = $data['table']['name'];
|
$tableName = $data['table']['name'];
|
||||||
|
//Check if table exists
|
||||||
if (!$LonaDB->TableManager->GetTable($tableName)) {
|
if (!$LonaDB->TableManager->GetTable($tableName)) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "table_missing", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "table_missing", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Get table instance
|
||||||
$table = $LonaDB->TableManager->GetTable($tableName);
|
$table = $LonaDB->TableManager->GetTable($tableName);
|
||||||
|
//Check if user has write permissions on desired table
|
||||||
if (!$table->CheckPermission($data['login']['name'], "write")) {
|
if (!$table->CheckPermission($data['login']['name'], "write")) {
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => false, "err" => "missing_permissions", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "missing_permissions", "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
//Prepare variable
|
||||||
if (empty($data['variable']['name'])) {
|
|
||||||
$response = json_encode(["success" => false, "err" => "bad_variable_name", "process" => $data['process']]);
|
|
||||||
socket_write($client, $response);
|
|
||||||
socket_close($client);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($data['variable']['value'])) {
|
|
||||||
$response = json_encode(["success" => false, "err" => "bad_variable_value", "process" => $data['process']]);
|
|
||||||
socket_write($client, $response);
|
|
||||||
socket_close($client);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$variableName = $data['variable']['name'];
|
$variableName = $data['variable']['name'];
|
||||||
$variableValue = $data['variable']['value'];
|
$variableValue = $data['variable']['value'];
|
||||||
|
//Push to table
|
||||||
$table->Set($variableName, $variableValue, $data['login']['name']);
|
$table->Set($variableName, $variableValue, $data['login']['name']);
|
||||||
|
//Create response array
|
||||||
$response = json_encode(["success" => true, "process" => $data['process']]);
|
$response = json_encode(["success" => true, "process" => $data['process']]);
|
||||||
|
//Send response and close socket
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
|
|
||||||
//Run plugin event
|
//Run plugin event
|
||||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "valueSet", [ "name" => $data['variable']['name'], "value" => $data['variable']['value'] ]);
|
$LonaDB->PluginManager->RunEvent($data['login']['name'], "valueSet", [ "name" => $data['variable']['name'], "value" => $data['variable']['value'] ]);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user