F diff --git a/index.php b/index.php --- a/index.php +++ b/index.php<?php- require_once "php/user.php";session_start();?><!DOCTYPE html><div style="flex: 1 0 0;"></div><ul id="topmenu">- <?php if (array_key_exists("user_object", $_SESSION)) { ?>+ <?php if (array_key_exists("username", $_SESSION)) { ?>- <li>- <?php- $user=$_SESSION['user_object'];- error_log($user->username);- echo $user->username;- ?>- </li>+ <li><?php echo $_SESSION['username'];?></li><li onclick="window.location.href='/php/logout.php'">Sign out</li><?php } else {?><div id="page"><?php- if (array_key_exists("user_object", $_SESSION)) {+ if (array_key_exists("username", $_SESSION)) {require_once("loggedin.php");} else {require_once("loginregister.php");F diff --git a/loggedin.js b/loggedin.js --- a/loggedin.js +++ b/loggedin.jsadd_link_functionality(document.getElementById("home_path_entry"), 0);+ function open_file(fileview) {+ var data = new FormData();+ data.append('folder', get_path());+ data.append('path', get_path());++ var xhr = new XMLHttpRequest();+ xhr.open('POST', '/php/readfile.php', true);+ xhr.onload = function () {++ };+ xhr.send(data);+ }+function add_file_visuals(fileview) {var visuals = document.createElement('div');fileview.visuals = visuals;}} else {img.src=`/mimeicons/${fileview.mimetype.replace("/", "-")}.png`;+ visuals.onclick = () => {+ open_file(fileview);+ }}visuals.oncontextmenu = (e) => {if (!dragging) {context(e, [['Open', () => {- if (fileview.is_directory) { pwd.push(fileview.filename);+ if (fileview.is_directory) {+ pwd.push(fileview.filename);load_dir();} else {- alert('not implemented');+ open_file(fileview);}}],['Rename', () => { rename_file(fileview.filename); }],for (let i = 0; i < max_length; i++) {path += pwd[i];if (i != max_length - 1)- path + "/";+ path += "/";}return path;}F diff --git a/loggedin.php b/loggedin.php --- a/loggedin.php +++ b/loggedin.php<button id="upload_btn" onclick="new_folder()">New Folder</button><div class="separator"></div><div class="path" id="the_path">- <button class="pathentry" id="home_path_entry">- <?php- $user=$_SESSION['user_object'];- echo $user->username;- ?>- 's files</button>+ <button class="pathentry" id="home_path_entry"><?php echo $_SESSION['username'] ?>'s files</button></div></h2>F diff --git a/php/login.php b/php/login.php --- a/php/login.php +++ b/php/login.phpdie("You didn't specify the pass or the username");}+ $database=new Database();$user=$database->authenticate($username,$password);if(!$user){die("Password or username is incorrect");}+ $_SESSION['username'] = $user->username;$_SESSION['user_object'] = $user;header('Location: /');F diff --git a/php/logout.php b/php/logout.php --- a/php/logout.php +++ b/php/logout.php// which will log the user out of our webpagesession_start();- unset($_SESSION['user_object']);+ unset($_SESSION['username']);header('Location: /');?>F diff --git a/php/readfile.php b/php/readfile.php new file mode 100644 --- /dev/null +++ b/php/readfile.php+ <?php+ require_once "database.php";+ require_once "configuration.php";+ require_once "file_type_recogniser.php";+ require_once "node.php";+ require_once "misc.php";++ session_start();+ if (!isset($_POST["filename"]) || !isset($_FILES["folder"])) {+ error_log("/php/readfile.php - invalid request");+ http_response_code(400);+ exit(1);+ }++ $user = $_SESSION['user_object'];+ $homedir = $user->home_directory;+ $folder = $_POST["folder"];+ $filename = $_POST["filename"];++ $dir = get_directory($folder, $user);+ if (!$dir) {+ error_log("i/php/readfile.php - invalid directory");+ http_response_code(409);+ exit(0);+ }++ $contents_of_dir = $database->get_links_of($dir);+ $file_node = null;++ foreach ($contents_of_dir as $c) {+ if ($c['name'] == $filename) {+ $file_node = $c;+ }+ }++ var_error_log($file_node);