get_string_between($request, "GET /table/", " HTTP"); if($tempTable) $this->table = $tempTable; $this->route = "table"; $this->title = $this->table . " | LonaDB"; $users = []; if ((!session("loginName") || !session("loginPassword")) && $this->route !== "login") { return redirect()->to("/login"); // Use return to properly return redirect } else { $login = $LonaDB->checkPassword(session("loginName"), session("loginPassword")); if (!$login['passCheck']) { return redirect()->to("/logout"); // Use return to properly return redirect } else { $createTable = $LonaDB->checkPermission(session('loginName'), "table_create"); $createUser = $LonaDB->checkPermission(session('loginName'), "user_create"); $deleteUser = $LonaDB->checkPermission(session('loginName'), "user_delete"); $this->users = false; if ($deleteUser['result'] || $createUser['result']) { $this->users = true; } $this->tables = false; if ($createTable['result']) { $this->tables = true; } if($this->table){ $this->tableData = $LonaDB->getTableData($this->table); if(!$this->tableData['success']) redirect()->to('/'); else{ $this->tableData = $this->tableData['data']; } } } } return view('livewire.table')->layoutData([ // Change view to 'livewire.table' "title" => $this->title, "route" => $this->route, "username" => session('loginName'), "users" => $this->users, "tables" => $this->tables ]); } public function get_string_between($string, $start, $end){ $string = ' ' . $string; $ini = strpos($string, $start); if ($ini == 0) return ''; $ini += strlen($start); $len = strpos($string, $end, $ini) - $ini; return substr($string, $ini, $len); } public function checkjson(string $value){ return json_validate($value); } public function checkbool (string $value){ switch(strtolower($value)){ case "false": return false; break; case "true": return true; break; default: return "not a bool"; break; } } public function getVariable(string $value){ $bool = $this->checkbool($value); $float = is_float($value); $json = $this->checkjson($value); if($bool !== "not a bool") return $bool; if($float) return floatval($value); if($json) return json_decode($value, true); return $value; } public function newVariable(){ $this->key = ""; $this->value = ""; $this->dispatch('showCreate'); } public function editKey(string $key){ $this->key = $key; $this->value = ""; $this->dispatch('showCreate'); } public function deleteKey(string $key){ $this->key = $key; $this->dispatch('showDelete'); } public function deleteVariable(){ $this->dispatch('hideDelete'); $this->warning = ""; $this->success = ""; if($this->key === "") { $this->warning = "No key was provided to the function"; $this->dispatch("refresh"); }else{ $file = file_get_contents("../config.json"); $json = json_decode($file, true); $LonaDB = new Client($json['LonaDB']['host'], $json['LonaDB']['port'], session("loginName"), session("loginPassword")); $LonaDBSU = new Client($json['LonaDB']['host'], $json['LonaDB']['port'], $json['LonaDB']['username'], $json['LonaDB']['password']); $variable = $LonaDB->delete($this->table, $this->key); if(!$variable['success']){ switch($variable['err']){ case "no_permission": $this->warning = "You are not allowed to delete users"; break; default: $this->warning = "An error has occured"; break; } $this->dispatch("refresh"); }else{ $this->success = "Variable '" . $this->key . "' has been deleted"; $this->tableData = $LonaDBSU->getTableData($this->table); $this->tableData = $this->tableData['data']; $this->dispatch("refresh"); } } } public function createVariable(){ $this->dispatch('hideCreate'); $this->warning = ""; $this->success = ""; if($this->key === "" || $this->value === "") { $this->warning = "No key or value provided"; $this->dispatch("refresh"); return; } $file = file_get_contents("../config.json"); $json = json_decode($file, true); $LonaDB = new Client($json['LonaDB']['host'], $json['LonaDB']['port'], session("loginName"), session("loginPassword")); $LonaDBSU = new Client($json['LonaDB']['host'], $json['LonaDB']['port'], $json['LonaDB']['username'], $json['LonaDB']['password']); $variable = $LonaDB->set($this->table, $this->key, $this->getVariable($this->value)); if(!$variable['success']){ switch($variable['err']){ case "missing_permissions": $this->warning = "You are not allowed to do this"; break; case "user_exist": $this->warning = "A user with that name already exists"; break; default: $this->warning = "An error has occured: " . $this->getVariable($this->value); break; } $this->dispatch("refresh"); }else{ $this->success = "Variable '" . $this->key . "' has been created"; $this->tableData = $LonaDBSU->getTableData($this->table); $this->tableData = $this->tableData['data']; $this->dispatch("refresh"); } } }