PluginManager update
This commit is contained in:
parent
afe6f30b3d
commit
4aed224685
6
.gitignore
vendored
6
.gitignore
vendored
@ -1,4 +1,4 @@
|
||||
build/run-phar.sh
|
||||
build/debug/*
|
||||
build/release/*
|
||||
build/*
|
||||
src/vendor/
|
||||
run
|
||||
build-phar
|
@ -66,7 +66,10 @@ try {
|
||||
$phar->setAlias($filename."-".$version.".phar");
|
||||
|
||||
builderLog("[BUILD] Set signature algorithm");
|
||||
$phar->setSignatureAlgorithm(Phar::SHA512);
|
||||
$phar->setSignatureAlgorithm(Phar::SHA1);
|
||||
|
||||
builderLog("[BUILD] Compress files");
|
||||
$phar->compressFiles(Phar::GZ);
|
||||
|
||||
builderLog("[BUILD] Saving the new Phar archive");
|
||||
$phar->stopBuffering();
|
||||
|
@ -1 +1 @@
|
||||
cd build/release ; printf "test\n" | php -dphar.readonly=0 LonaDB-4.5.0-stable.phar
|
||||
cd build/debug ; printf "test\n" | php -dphar.readonly=0 LonaDB-4.6.0-debug.phar
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"filename": "LonaDB",
|
||||
"version": "4.5.0-stable",
|
||||
"version": "4.6.0-debug",
|
||||
"path": "build",
|
||||
"debug": false
|
||||
"debug": true
|
||||
}
|
@ -14,5 +14,8 @@ return new class {
|
||||
$response = json_encode(["success" => true, "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
|
||||
//Run plugin event
|
||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "functionCreate", [ "name" => $data['function']['name'], "content" => $data['function']['content'] ]);
|
||||
}
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
return new class {
|
||||
public function run($lona, $data, $client) : void {
|
||||
public function run($LonaDB, $data, $client) : void {
|
||||
if(!$data['permission']['user']) {
|
||||
$response = json_encode(["success" => false, "err" => "missing_user", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
@ -9,17 +9,20 @@ return new class {
|
||||
return;
|
||||
}
|
||||
|
||||
if(!$lona->UserManager->CheckPermission($data['login']['name'], "permission_add")) {
|
||||
$lona->Logger->Error("User '".$data['login']['name']."' tried to add a permission without permission");
|
||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "permission_add")) {
|
||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to add a permission without permission");
|
||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
$lona->UserManager->AddPermission($data['permission']['user'], $data['permission']['name'], $data['login']['name']);
|
||||
$LonaDB->UserManager->AddPermission($data['permission']['user'], $data['permission']['name'], $data['login']['name']);
|
||||
$response = json_encode(["success" => true, "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
|
||||
//Run plugin event
|
||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "permissionAdd", [ "user" => $data['permission']['user'], "name" => $data['permission']['name'] ]);
|
||||
}
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
return new class {
|
||||
public function run($lona, $data, $client) : void {
|
||||
public function run($LonaDB, $data, $client) : void {
|
||||
if(!$data['checkPass']['name'] || !$data['checkPass']['pass']) {
|
||||
$response = json_encode(["success" => false, "err" => "missing_arguments", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
@ -15,15 +15,15 @@ return new class {
|
||||
$ciphertext = hex2bin($parts[1]);
|
||||
$password = openssl_decrypt($ciphertext, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
|
||||
|
||||
if(!$lona->UserManager->CheckPermission($data['login']['name'], "password_check")) {
|
||||
$lona->Logger->Error("User '".$data['login']['name']."' tried to check a password without permission");
|
||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "password_check")) {
|
||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to check a password without permission");
|
||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
$checkPassword = $lona->UserManager->CheckPassword($data['checkPass']['name'], $password);
|
||||
$checkPassword = $LonaDB->UserManager->CheckPassword($data['checkPass']['name'], $password);
|
||||
|
||||
$response = json_encode(["success" => true, "passCheck" => $checkPassword, "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
return new class {
|
||||
public function run($lona, $data, $client) : void {
|
||||
public function run($LonaDB, $data, $client) : void {
|
||||
if(!$data['permission'] || !$data['permission']['name'] || !$data['permission']['user']){
|
||||
$response = json_encode(["success" => false, "err" => "missing_arguments", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
@ -9,15 +9,15 @@ return new class {
|
||||
return;
|
||||
}
|
||||
|
||||
if(!$lona->UserManager->CheckPermission($data['login']['name'], "permission_check")) {
|
||||
$lona->Logger->Error("User '".$data['login']['name']."' tried to check a permission without permission");
|
||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "permission_check")) {
|
||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to check a permission without permission");
|
||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
$permission = $lona->UserManager->CheckPermission($data['permission']['user'], $data['permission']['name'], $data['login']['name']);
|
||||
$permission = $LonaDB->UserManager->CheckPermission($data['permission']['user'], $data['permission']['name'], $data['login']['name']);
|
||||
|
||||
$response = json_encode(["success" => true, "result" => $permission, "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
return new class {
|
||||
public function run($lona, $data, $client) : void {
|
||||
if (!$lona->UserManager->CheckPermission($data['login']['name'], "table_create")) {
|
||||
$lona->Logger->Error("User '".$data['login']['name']."' tried to create a table without permission");
|
||||
public function run($LonaDB, $data, $client) : void {
|
||||
if (!$LonaDB->UserManager->CheckPermission($data['login']['name'], "table_create")) {
|
||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to create a table without permission");
|
||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
@ -24,7 +24,7 @@ return new class {
|
||||
return;
|
||||
}
|
||||
|
||||
$table = $lona->TableManager->CreateTable($data['table']['name'], $data['login']['name']);
|
||||
$table = $LonaDB->TableManager->CreateTable($data['table']['name'], $data['login']['name']);
|
||||
|
||||
if(!$table){
|
||||
$response = json_encode(["success" => false, "err" => "table_exists", "process" => $data['process']]);
|
||||
@ -36,5 +36,8 @@ return new class {
|
||||
$response = json_encode(["success" => true, "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
|
||||
//Run plugin event
|
||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "tableCreate", [ "name" => $data['table']['name'] ]);
|
||||
}
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
return new class {
|
||||
public function run($lona, $data, $client) : void {
|
||||
public function run($LonaDB, $data, $client) : void {
|
||||
if(!$data['user']['name'] || !$data['user']['password']){
|
||||
$response = json_encode(["success" => false, "err" => "missing_arguments", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
@ -15,8 +15,8 @@ return new class {
|
||||
$ciphertext = hex2bin($parts[1]);
|
||||
$password = openssl_decrypt($ciphertext, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
|
||||
|
||||
if(!$lona->UserManager->CheckPermission($data['login']['name'], "user_create")){
|
||||
$lona->Logger->Error("User '".$data['login']['name']."' tried to create a user without permission");
|
||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "user_create")){
|
||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to create a user without permission");
|
||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
@ -24,14 +24,14 @@ return new class {
|
||||
}
|
||||
|
||||
|
||||
if($lona->UserManager->CheckUser($data['user']['name'])){
|
||||
if($LonaDB->UserManager->CheckUser($data['user']['name'])){
|
||||
$response = json_encode(["success" => false, "err" => "user_exist", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
$result = $lona->UserManager->CreateUser($data['user']['name'], $password);
|
||||
$result = $LonaDB->UserManager->CreateUser($data['user']['name'], $password);
|
||||
|
||||
$response = json_encode(["success" => $result, "process" => $data['process']]);
|
||||
|
||||
@ -39,5 +39,8 @@ return new class {
|
||||
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
|
||||
//Run plugin event
|
||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "userCreate", [ "name" => $data['user']['name'] ]);
|
||||
}
|
||||
};
|
||||
|
@ -14,5 +14,8 @@ return new class {
|
||||
$response = json_encode(["success" => true, "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
|
||||
//Run plugin event
|
||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "functionDelete", [ "name" => $data['function']['name'] ]);
|
||||
}
|
||||
};
|
||||
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
return new class {
|
||||
public function run($lona, $data, $client) : void {
|
||||
if (!$lona->UserManager->CheckPermission($data['login']['name'], "table_delete")) {
|
||||
$lona->Logger->Error("User '".$data['login']['name']."' tried to delete a table without permission");
|
||||
public function run($LonaDB, $data, $client) : void {
|
||||
if (!$LonaDB->UserManager->CheckPermission($data['login']['name'], "table_delete")) {
|
||||
$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);
|
||||
@ -17,21 +17,21 @@ return new class {
|
||||
return;
|
||||
}
|
||||
|
||||
if(!$lona->TableManager->GetTable($data['table']['name'])) {
|
||||
if(!$LonaDB->TableManager->GetTable($data['table']['name'])) {
|
||||
$response = json_encode(["success" => false, "err" => "table_missing", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
if($lona->TableManager->GetTable($data['table']['name'])->GetOwner() !== $data['login']['name'] && $lona->UserManager->GetRole($data['login']['name']) !== "Administrator" && $lona->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") {
|
||||
$response = json_encode(["success" => false, "err" => "not_table_owner", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
$table = $lona->TableManager->DeleteTable($data['table']['name'], $data['login']['name']);
|
||||
$table = $LonaDB->TableManager->DeleteTable($data['table']['name'], $data['login']['name']);
|
||||
|
||||
if(!$table){
|
||||
$response = json_encode(["success" => false, "err" => "table_doesnt_exist", "process" => $data['process']]);
|
||||
@ -43,5 +43,8 @@ return new class {
|
||||
$response = json_encode(["success" => true, "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
|
||||
//Run plugin event
|
||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "tableDelete", [ "name" => $data['table']['name'] ]);
|
||||
}
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
return new class {
|
||||
public function run($lona, $data, $client) : void {
|
||||
public function run($LonaDB, $data, $client) : void {
|
||||
if(!$data['user']['name']){
|
||||
$response = json_encode(["success" => false, "err" => "missing_arguments", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
@ -9,22 +9,22 @@ return new class {
|
||||
return;
|
||||
}
|
||||
|
||||
if(!$lona->UserManager->CheckPermission($data['login']['name'], "user_delete")){
|
||||
$lona->Logger->Error("User '".$data['login']['name']."' tried to delete a user without permission");
|
||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "user_delete")){
|
||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to delete a user without permission");
|
||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!$lona->UserManager->CheckUser($data['user']['name'])){
|
||||
if(!$LonaDB->UserManager->CheckUser($data['user']['name'])){
|
||||
$response = json_encode(["success" => false, "err" => "user_doesnt_exist", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
$result = $lona->UserManager->DeleteUser($data['user']['name'], $data['user']['password']);
|
||||
$result = $LonaDB->UserManager->DeleteUser($data['user']['name'], $data['user']['password']);
|
||||
|
||||
$response = json_encode(["success" => $result, "process" => $data['process']]);
|
||||
|
||||
@ -32,5 +32,8 @@ return new class {
|
||||
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
|
||||
//Run plugin event
|
||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "userDelete", [ "name" => $data['table']['name'] ]);
|
||||
}
|
||||
};
|
||||
|
@ -36,6 +36,9 @@ return new class {
|
||||
|
||||
// Remove the function from the $functions array
|
||||
unset($functions[$functionName]);
|
||||
|
||||
//Run plugin event
|
||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "eval", [ "content" => $data['function'] ]);
|
||||
}
|
||||
|
||||
private function sendErrorResponse($client, $error, $process): void {
|
||||
|
@ -5,5 +5,8 @@ return new class {
|
||||
$function = $LonaDB->FunctionManager->GetFunction($data['name']);
|
||||
|
||||
$function->Execute($LonaDB, $data, $client);
|
||||
|
||||
//Run plugin event
|
||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "functionExecute", [ "name" => $data['name'] ]);
|
||||
}
|
||||
};
|
||||
|
@ -1,25 +1,25 @@
|
||||
<?php
|
||||
|
||||
return new class {
|
||||
public function run($lona, $data, $client) : void {
|
||||
if($data['login']['name'] !== "root" && $lona->UserManager->GetRole($data['login']['name']) !== "Administrator"){
|
||||
public function run($LonaDB, $data, $client) : void {
|
||||
if($data['login']['name'] !== "root" && $LonaDB->UserManager->GetRole($data['login']['name']) !== "Administrator"){
|
||||
$response = json_encode(["success" => false, "err" => "not_allowed", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!$lona->UserManager->CheckUser($data['user'])){
|
||||
if(!$LonaDB->UserManager->CheckUser($data['user'])){
|
||||
$response = json_encode(["success" => false, "err" => "user_doesnt_exist", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
$permissions = $lona->UserManager->GetPermissions($data['user']);
|
||||
$permissions = $LonaDB->UserManager->GetPermissions($data['user']);
|
||||
|
||||
if($permissions === []) $response = '{ "success": true, "list": {}, "role": "' . $lona->UserManager->GetRole($data['user']) . '", "process": "'.$data['process'].'" }';
|
||||
else $response = json_encode(["success" => true, "list" => $permissions, "role" => $lona->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']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
}
|
||||
|
@ -1,22 +1,22 @@
|
||||
<?php
|
||||
|
||||
return new class {
|
||||
public function run($lona, $data, $client) : void {
|
||||
if(!$lona->TableManager->GetTable($data['table'])) {
|
||||
public function run($LonaDB, $data, $client) : void {
|
||||
if(!$LonaDB->TableManager->GetTable($data['table'])) {
|
||||
$response = json_encode(["success" => false, "err" => "table_missing", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!$lona->TableManager->GetTable($data['table'])->CheckPermission($data['login']['name'], "read")) {
|
||||
if(!$LonaDB->TableManager->GetTable($data['table'])->CheckPermission($data['login']['name'], "read")) {
|
||||
$response = json_encode(["success" => false, "err" => "missing_permissions", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
$tableData = $lona->TableManager->getTable($data['table'])->GetData();
|
||||
$tableData = $LonaDB->TableManager->getTable($data['table'])->GetData();
|
||||
|
||||
if($tableData === []) $response = '{ "success": true, "data": {}, "process": "'.$data['process'].'" }';
|
||||
else $response = json_encode(["success" => true, "data" => $tableData, "process" => $data['process']]);
|
||||
|
@ -1,9 +1,13 @@
|
||||
<?php
|
||||
|
||||
return new class {
|
||||
public function run($lona, $data, $client) : void {
|
||||
if($data['user'] !== $data['login']['name']){
|
||||
if(!$lona->UserManager->CheckPermission($data['login']['name'], "get_tables")){
|
||||
public function run($LonaDB, $data, $client) : void {
|
||||
$user = null;
|
||||
if(!$data['user']) $user = $data['login']['name'];
|
||||
else $user = $data['user'];
|
||||
|
||||
if($user !== $data['login']['name']){
|
||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "get_tables")){
|
||||
$response = json_encode(["success" => false, "err" => "missing_permission", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
@ -11,14 +15,14 @@ return new class {
|
||||
}
|
||||
}
|
||||
|
||||
if(!$lona->UserManager->CheckUser($data['user'])){
|
||||
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 = $lona->TableManager->ListTables($data['user']);
|
||||
$tables = $LonaDB->TableManager->ListTables($user);
|
||||
|
||||
$response = json_encode(["success" => true, "tables" => $tables, "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
|
@ -1,15 +1,15 @@
|
||||
<?php
|
||||
|
||||
return new class {
|
||||
public function run($lona, $data, $client) : void {
|
||||
if(!$lona->UserManager->CheckPermission($data['login']['name'], "get_users")){
|
||||
public function run($LonaDB, $data, $client) : void {
|
||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "get_users")){
|
||||
$response = json_encode(["success" => false, "err" => "missing_permission", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
$users = $lona->UserManager->ListUsers();
|
||||
$users = $LonaDB->UserManager->ListUsers();
|
||||
|
||||
$response = json_encode(["success" => true, "users" => $users, "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
return new class {
|
||||
public function run($lona, $data, $client) : void {
|
||||
public function run($LonaDB, $data, $client) : void {
|
||||
if (!$data['table']['name']) {
|
||||
$response = json_encode(["success" => false, "err" => "bad_table_name", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
@ -9,14 +9,14 @@ return new class {
|
||||
return;
|
||||
}
|
||||
|
||||
if(!$lona->TableManager->GetTable($data['table']['name'])) {
|
||||
if(!$LonaDB->TableManager->GetTable($data['table']['name'])) {
|
||||
$response = json_encode(["success" => false, "err" => "table_missing", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!$lona->TableManager->GetTable($data['table']['name'])->CheckPermission($data['login']['name'], "read")){
|
||||
if (!$LonaDB->TableManager->GetTable($data['table']['name'])->CheckPermission($data['login']['name'], "read")){
|
||||
$response = json_encode(["success" => false, "err" => "missing_permissions", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
@ -30,7 +30,7 @@ return new class {
|
||||
return;
|
||||
}
|
||||
|
||||
$value = $lona->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']);
|
||||
|
||||
$response = [
|
||||
"variable" => [
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
return new class {
|
||||
public function run($lona, $data, $client) : void {
|
||||
public function run($LonaDB, $data, $client) : void {
|
||||
if(!$data['permission']['user']) {
|
||||
$response = json_encode(["success" => false, "err" => "missing_user", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
@ -9,17 +9,20 @@ return new class {
|
||||
return;
|
||||
}
|
||||
|
||||
if(!$lona->UserManager->CheckPermission($data['login']['name'], "permission_remove")) {
|
||||
$lona->Logger->Error("User '".$data['login']['name']."' tried to add a permission without permission");
|
||||
if(!$LonaDB->UserManager->CheckPermission($data['login']['name'], "permission_remove")) {
|
||||
$LonaDB->Logger->Error("User '".$data['login']['name']."' tried to add a permission without permission");
|
||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
$lona->UserManager->RemovePermission($data['permission']['user'], $data['permission']['name'], $data['login']['name']);
|
||||
$LonaDB->UserManager->RemovePermission($data['permission']['user'], $data['permission']['name'], $data['login']['name']);
|
||||
$response = json_encode(["success" => true, "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
|
||||
//Run plugin event
|
||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "permissionRemove", [ "user" => $data['permission']['user'], "name" => $data['permission']['name'] ]);
|
||||
}
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
return new class {
|
||||
public function run($lona, $data, $client) : void {
|
||||
public function run($LonaDB, $data, $client) : void {
|
||||
if (!$data['table']['name']) {
|
||||
$response = json_encode(["success" => false, "err" => "bad_table_name", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
@ -9,7 +9,7 @@ return new class {
|
||||
return;
|
||||
}
|
||||
|
||||
if(!$lona->TableManager->GetTable($data['table']['name'])) {
|
||||
if(!$LonaDB->TableManager->GetTable($data['table']['name'])) {
|
||||
$response = json_encode(["success" => false, "err" => "table_missing", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
@ -23,21 +23,21 @@ return new class {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!$lona->TableManager->GetTable($data['table']['name'])->CheckPermission($data['login']['name'], "read")) {
|
||||
if (!$LonaDB->TableManager->GetTable($data['table']['name'])->CheckPermission($data['login']['name'], "read")) {
|
||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!$lona->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'])){
|
||||
$response = json_encode(["success" => false, "err" => "missing_variable", "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
return;
|
||||
}
|
||||
|
||||
$lona->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']);
|
||||
|
||||
$response = [
|
||||
"success" => true,
|
||||
@ -46,6 +46,9 @@ return new class {
|
||||
|
||||
socket_write($client, json_encode($response));
|
||||
socket_close($client);
|
||||
|
||||
//Run plugin event
|
||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "valueRemove", [ "name" => $data['variable']['name'] ]);
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
@ -49,5 +49,8 @@ return new class {
|
||||
$response = json_encode(["success" => true, "process" => $data['process']]);
|
||||
socket_write($client, $response);
|
||||
socket_close($client);
|
||||
|
||||
//Run plugin event
|
||||
$LonaDB->PluginManager->RunEvent($data['login']['name'], "valueSet", [ "name" => $data['variable']['name'], "value" => $data['variable']['value'] ]);
|
||||
}
|
||||
};
|
||||
|
@ -16,7 +16,7 @@ class Logger{
|
||||
}
|
||||
|
||||
private function log(string $message) : void {
|
||||
echo($message);
|
||||
echo($message."\e[0m");
|
||||
if($this->LonaDB->config["logging"]) fwrite($this->LogFile, $message);
|
||||
}
|
||||
|
||||
@ -25,17 +25,17 @@ class Logger{
|
||||
}
|
||||
|
||||
public function Warning($msg) : void {
|
||||
$log = date("Y-m-d h:i:s")." [WARNING] ".$msg."\n";
|
||||
$log = "\033[33m" . date("Y-m-d h:i:s")." [WARNING] ".$msg."\n";
|
||||
$this->log($log);
|
||||
}
|
||||
|
||||
public function Error($msg) : void {
|
||||
$log = date("Y-m-d h:i:s")." [ERROR] ".$msg."\n";
|
||||
$log = "\033[31m" . date("Y-m-d h:i:s")." [ERROR] ".$msg."\n";
|
||||
$this->log($log);
|
||||
}
|
||||
|
||||
public function Create($msg) : void {
|
||||
$log = date("Y-m-d h:i:s")." [CREATE] ".$msg."\n";
|
||||
$log = "\033[32m" . date("Y-m-d h:i:s")." [CREATE] ".$msg."\n";
|
||||
$this->log($log);
|
||||
}
|
||||
|
||||
@ -45,7 +45,7 @@ class Logger{
|
||||
}
|
||||
|
||||
public function Info($msg) : void {
|
||||
$log = date("Y-m-d h:i:s")." [INFO] ".$msg."\n";
|
||||
$log = "\033[34m" . date("Y-m-d h:i:s")." [INFO] ".$msg."\n";
|
||||
$this->log($log);
|
||||
}
|
||||
|
||||
@ -59,6 +59,11 @@ class Logger{
|
||||
$this->log($log);
|
||||
}
|
||||
|
||||
public function Plugin($name, $msg) : void {
|
||||
$log = "\033[35m" . date("Y-m-d h:i:s")." [Plugin] ".$name.": ".$msg."\n";
|
||||
$this->log($log);
|
||||
}
|
||||
|
||||
public function Start($msg) : void {
|
||||
if(!$this->Start){
|
||||
$this->Start = true;
|
||||
|
@ -27,4 +27,19 @@ class PluginBase{
|
||||
final public function GetName() : string { return $this->Name; }
|
||||
|
||||
final public function GetLogger() : Logger { return $this->LonaDB->Logger; }
|
||||
|
||||
//Events
|
||||
public function onTableCreate(string $executor, string $name) : void {}
|
||||
public function onTableDelete(string $executor, string $name) : void {}
|
||||
public function onValueSet(string $executor, string $name, string $value) : void {}
|
||||
public function onValueRemove(string $executor, string $name) : void {}
|
||||
public function onFunctionCreate(string $executor, string $name, string $content) : void {}
|
||||
public function onFunctionDelete(string $executor, string $name) : void {}
|
||||
public function onFunctionExecute(string $executor, string $name) : void {}
|
||||
public function onUserCreate(string $executor, string $name) : void {}
|
||||
public function onUserDelete(string $executor, string $name) : void {}
|
||||
public function onEval(string $executor, string $content) : void {}
|
||||
public function onPermissionAdd(string $executor, string $user, string $permission) : void {}
|
||||
public function onPermissionRemove(string $executor, string $user, string $permission) : void {}
|
||||
|
||||
}
|
@ -144,4 +144,47 @@ class PluginManager{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function RunEvent(string $executor, string $event, Array $arguments) : void {
|
||||
foreach($this->Plugins as $pluginName => $pluginInstance) {
|
||||
switch($event){
|
||||
case "tableCreate":
|
||||
$pluginInstance->onTableCreate($executor, $arguments['name']);
|
||||
break;
|
||||
case "tableDelete":
|
||||
$pluginInstance->onTableDelete($executor, $arguments['name']);
|
||||
break;
|
||||
case "valueSet":
|
||||
$pluginInstance->onValueSet($executor, $arguments['name'], $arguments['value']);
|
||||
break;
|
||||
case "valueRemove":
|
||||
$pluginInstance->onValueRemove($executor, $arguments['name']);
|
||||
break;
|
||||
case "functionCreate":
|
||||
$pluginInstance->onFunctionCreate($executor, $arguments['name'], $arguments['content']);
|
||||
break;
|
||||
case "functionDelete":
|
||||
$pluginInstance->onFunctionDelete($executor, $arguments['name']);
|
||||
break;
|
||||
case "functionExecute":
|
||||
$pluginInstance->onFunctionExecute($executor, $arguments['name']);
|
||||
break;
|
||||
case "userCreate":
|
||||
$pluginInstance->onUserCreate($executor, $arguments['name']);
|
||||
break;
|
||||
case "userDelete":
|
||||
$pluginInstance->onUserDelete($executor, $arguments['name']);
|
||||
break;
|
||||
case "eval":
|
||||
$pluginInstance->onEval($executor, $arguments['content']);
|
||||
break;
|
||||
case "permissionAdd":
|
||||
$pluginInstance->onPermissionAdd($executor, $arguments['user'], $arguments['permission']);
|
||||
break;
|
||||
case "permissionRemove":
|
||||
$pluginInstance->onPermissionRemove($executor, $arguments['user'], $arguments['permission']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -99,6 +99,9 @@ class Server {
|
||||
try {
|
||||
$data = json_decode($dataString, true);
|
||||
|
||||
if(!is_array($data)) return;
|
||||
if(!array_key_exists('action', $data)) return;
|
||||
|
||||
$key = hash('sha256', $data['process'], true);
|
||||
$parts = explode(':', $data['login']['password']);
|
||||
$iv = hex2bin($parts[0]);
|
||||
|
Loading…
Reference in New Issue
Block a user