Add encryption, fix table deleting
This commit is contained in:
parent
d37553f02d
commit
afe6f30b3d
@ -9,6 +9,12 @@ return new class {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$key = hash('sha256', $data['process'], true);
|
||||||
|
$parts = explode(':', $data['checkPass']['pass']);
|
||||||
|
$iv = hex2bin($parts[0]);
|
||||||
|
$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")) {
|
if(!$lona->UserManager->CheckPermission($data['login']['name'], "password_check")) {
|
||||||
$lona->Logger->Error("User '".$data['login']['name']."' tried to check a password without permission");
|
$lona->Logger->Error("User '".$data['login']['name']."' tried to check a password without permission");
|
||||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||||
@ -17,7 +23,7 @@ return new class {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$checkPassword = $lona->UserManager->CheckPassword($data['checkPass']['name'], $data['checkPass']['pass']);
|
$checkPassword = $lona->UserManager->CheckPassword($data['checkPass']['name'], $password);
|
||||||
|
|
||||||
$response = json_encode(["success" => true, "passCheck" => $checkPassword, "process" => $data['process']]);
|
$response = json_encode(["success" => true, "passCheck" => $checkPassword, "process" => $data['process']]);
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
|
@ -9,6 +9,12 @@ return new class {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$key = hash('sha256', $data['process'], true);
|
||||||
|
$parts = explode(':', $data['user']['password']);
|
||||||
|
$iv = hex2bin($parts[0]);
|
||||||
|
$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")){
|
if(!$lona->UserManager->CheckPermission($data['login']['name'], "user_create")){
|
||||||
$lona->Logger->Error("User '".$data['login']['name']."' tried to create a user without permission");
|
$lona->Logger->Error("User '".$data['login']['name']."' tried to create a user without permission");
|
||||||
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "no_permission", "process" => $data['process']]);
|
||||||
@ -25,7 +31,7 @@ return new class {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = $lona->UserManager->CreateUser($data['user']['name'], $data['user']['password']);
|
$result = $lona->UserManager->CreateUser($data['user']['name'], $password);
|
||||||
|
|
||||||
$response = json_encode(["success" => $result, "process" => $data['process']]);
|
$response = json_encode(["success" => $result, "process" => $data['process']]);
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ return new class {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($lona->TableManager->GetTable($data['table']['name'])->GetOwner() !== $data['login']['name']) {
|
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") {
|
||||||
$response = json_encode(["success" => false, "err" => "not_table_owner", "process" => $data['process']]);
|
$response = json_encode(["success" => false, "err" => "not_table_owner", "process" => $data['process']]);
|
||||||
socket_write($client, $response);
|
socket_write($client, $response);
|
||||||
socket_close($client);
|
socket_close($client);
|
||||||
|
@ -71,7 +71,7 @@ class TableManager{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($user !== $this->Tables[$name]->GetOwner()) {
|
if($user !== $this->Tables[$name]->GetOwner() && $this->LonaDB->UserManager->GetRole($user) !== "Administrator" && $this->LonaDB->UserManager->GetRole($user) !== "Superuser") {
|
||||||
$this->LonaDB->Logger->Table("Not the owner! Trying to delete table '" . $name . "', requested by user '" . $user . "'");
|
$this->LonaDB->Logger->Table("Not the owner! Trying to delete table '" . $name . "', requested by user '" . $user . "'");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user