FILEUP



LOG | FILES | OVERVIEW


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.js
add_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.php
die("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 webpage
session_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);