Skip to content
Snippets Groups Projects
Commit 14092968 authored by noe.fleury's avatar noe.fleury :computer:
Browse files
parents 99f37cef 6324aa15
No related branches found
No related tags found
No related merge requests found
......@@ -12,6 +12,7 @@ INSERT INTO Paths
VALUES
("/a", "a", NULL),
("/a/coucou", "a", "/a"),
("/a/coucou/test", "a", "/a/coucou"),
("/b", "b", NULL),
("/c", "c", NULL),
("/c/test", "c", "/c"),
......@@ -20,12 +21,14 @@ VALUES
INSERT INTO Files
VALUES
("abcd", "un", "/a"),
("ab", "deux", "/a"),
("@dfsg", "trois", "/c/test"),
("gbvaf", "quatre", "/b"),
("dsfgh", "cinq", "/d"),
("sdfa", "six", "/e");
("abcd", "un", "/a", 46.2054, 6.1459),
("adssb", "deux", "/a", 46.2054, 6.1459),
("accb", "deux", "/a/coucou", 46.2054, 6.1459),
("abnnnnn", "deux", "/a/coucou", 46.2054, 6.1459),
("@dfsg", "trois", "/c/test", 46.2054, 6.1459),
("gbvaf", "quatre", "/b", 46.2054, 6.1459),
("dsfgh", "cinq", "/d", 46.2054, 6.1459),
("sdfa", "six", "/e", 46.2054, 6.1459);
INSERT INTO Shares
VALUES
......
version: '3'
services:
db:
image: mysql
image: mysql:5
restart: always
container_name: hyperdrive
environment:
MYSQL_ROOT_PASSWORD: super
MYSQL_ROOT_PASSWORD: superhyper
MYSQL_DATABASE: hyperdrive
MYSQL_USER: hyperdrive
MYSQL_PASSWORD: hyper
......
......@@ -5,17 +5,17 @@ USE `hyperdrive`;
-- Creating tables
CREATE TABLE IF NOT EXISTS Users (
pseudo varchar(60) NOT NULL,
login varchar(60) NOT NULL,
passwd varchar(256) NOT NULL,
PRIMARY KEY (pseudo)
PRIMARY KEY (login)
);
CREATE TABLE IF NOT EXISTS Paths (
paths varchar(50) NOT NULL,
pseudo varchar(60) NOT NULL,
login varchar(60) NOT NULL,
parent varchar(50),
PRIMARY KEY (paths),
FOREIGN KEY (pseudo) REFERENCES Users(pseudo),
FOREIGN KEY (login) REFERENCES Users(login),
FOREIGN KEY (parent) REFERENCES Paths(paths)
);
......@@ -34,8 +34,8 @@ CREATE TABLE IF NOT EXISTS Shares (
pseudo_2 varchar(60) NOT NULL,
file_id varchar(100) NOT NULL,
PRIMARY KEY (pseudo_1, pseudo_2, file_id),
FOREIGN KEY (pseudo_1) REFERENCES Users(pseudo),
FOREIGN KEY (pseudo_2) REFERENCES Users(pseudo),
FOREIGN KEY (pseudo_1) REFERENCES Users(login),
FOREIGN KEY (pseudo_2) REFERENCES Users(login),
FOREIGN KEY (file_id) REFERENCES Files(file_id)
);
......
-- Get content of a folder
-- paths | login | parent | file_id | file_name
SELECT Paths.paths, login, parent, Files.file_id, Files.file_name FROM Paths
LEFT JOIN Files ON Files.paths = Paths.paths
WHERE Files.file_id IS NOT NULL
AND login='a'
AND Paths.paths='/a/coucou'
OR Paths.parent='/a/coucou';
\ No newline at end of file
function new_file(file_name, file_id) {
content = `
<div class="file" id="${file_id}">
<p>
<button>
<img src="/images/file_img.png" height="50px">
</button>
<p>${file_name}</p>
</p>
</div>
`
document.getElementById("drive").append(content);
}
function new_folder (folder_name) {
content = `
<div class="folder">
<p>
<button><img src="/images/folder_img.png" height="50px"></button>
<p>${folder_name}</p>
</p>
</div>
`;
document.getElementById("drive").append(content);
}
\ No newline at end of file
......@@ -4,6 +4,8 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="/styles/style.css">
<script src="jquery-3.4.1.min.js"></script>
<script src="element-style.js"></script>
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
......@@ -16,18 +18,9 @@
</div>
<div id="drive">
<h3>Drive</h3>
<div class="folder">
<p>
<button><img src="/images/folder_img.png" height="50px"></button>
<p>folder 1</p>
</p>
</div>
<div class="file">
<p>
<button><img src="/images/file_img.png" height="50px"></button>
<p>file 1</p>
</p>
</div>
<script type="javascript">
</script>
</div>
<div id="info">
<h3>Infos</h3>
......
This diff is collapsed.
......@@ -3,9 +3,7 @@ const CryptoJS = require("crypto-js")
const express = require('express')
const app = express()
const port = 8080
const sql = require('./modules/sql-request');
const sql = require('./sql-request');
///// JWT part /////
......@@ -97,8 +95,11 @@ app.get('/', (req, res) => {
// resCode : [ 0: User now logged in, 1: False password, 2: Invalid username, 3: Empty user or pass ]
app.get('/login', (req, res) => {
sql.connect();
const user = req.query['user'];
const pass = req.query['pass'];
userObject = sql.userExist(user, pass);
if (!user || !pass) {
res.send({
......@@ -114,6 +115,13 @@ app.get('/login', (req, res) => {
"noe": { "pass_enc": "my_pass".hashCode() },
"nicolas" : { "pass_enc": "your_pass".hashCode() }
}
/*
More like this :
{
login: "a",
passwd: "test"
}
*/
if (user in users){
if (users[user].pass_enc == pass.hashCode()) {
......@@ -216,7 +224,8 @@ app.get('/logout/', (req, res) => {
* param : password
*/
app.get('/register/', (req, res) => {
res.send(`Request for a register (${req.query['login']}, ${req.query['pass']})`)
sql.addUser(req.query['login'], req.query['pass']);
res.send(`Request for a register (${req.query['login']}, ${req.query['pass']})`);
})
/**
......
const mysql = require('mysql');
function getCool(){
console.log("coucou");
}
exports
\ No newline at end of file
......@@ -3,6 +3,7 @@
[
"crypto-js@3.1.9-1",
"/Users/nono/Documents/HEPIA/3ème année/WEB avancé/git/2019_tp2/projet"
// "/Users/klaus/Documents/Web/Back/2019_tp2/projet"
]
],
"_from": "crypto-js@3.1.9-1",
......@@ -27,6 +28,7 @@
"_resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.9-1.tgz",
"_spec": "3.1.9-1",
"_where": "/Users/nono/Documents/HEPIA/3ème année/WEB avancé/git/2019_tp2/projet",
// "_where": "/Users/klaus/Documents/Web/Back/2019_tp2/projet",
"author": {
"name": "Evan Vosberg",
"url": "http://github.com/evanvosberg"
......
const mysql = require('mysql');
var con = mysql.createConnection({
host: "127.0.0.1",
port: 3306,
user: "hyperdrive",
password: "hyper",
database: 'hyperdrive',
insecureAuth: true
});
/**
* This function check if a user exist in the DB
* @param {string} login This is the login of the user
* @param {string} pass This is the password of the user
*/
async function userExist(login, pass){
const q = `SELECT login, passwd FROM Users WHERE login='${login}' AND passwd='${pass}';`;
con.query(q, function (err, result) {
console.log(result);
if (err) return false;
if (result.length > 0) {
console.log("user exists");
return {
login: result[0]['login'],
passwd: result[0]['passwd']
};
} else {
console.log("user don't exists");
return false;
}
});
}
/**
* This function insert a new user in the DB
* @param {string} login This is the login of the user
* @param {string} pass This is the password of the user
*/
async function insertUser(login, passwd) {
let q = `INSERT INTO Users VALUES (${login}, ${passwd});`;
re = await userExist(login, passwd);
if (!re){
console.log("querry");
con.query(q, (err, res) => {
if (err) return false;
console.log("User", login, "inserted in the db")
return true;
});
}
}
function addPath(login, path, parent){
let q = `INSERT INTO Paths VALUES ('/${login}', ${login}, ${parent});`;
con.query(q, function(err, res) {
if (err) {
console.log("Error while adding a new path");
console.log(err);
return false;
}
console.log("New path", path, "added succesfully !");
return true;
});
}
/**
* This function add a user in the db it it doesn't already exists
* It also add the default path of the user after inserting the new user.
* @param {string} login This is the login of the user
* @param {string} pass This is the password of the user
*/
async function addUser(login, passwd){
return new Promise(resolve => {
a == true;
});
}
// user_inserted = await insertUser(login, passwd);
// if (user_inserted) {
// path_added = await addPath(login, `/${login}`, 'NULL');
// if (path_added) {
// console.log("File added succesfully");
// return true
// }
// console.log("Error while adding a path");
// return false;
// }
// return false;
// }
/**
+----------------+-------+-----------+---------+-----------+
| paths | login | parent | file_id | file_name |
+----------------+-------+-----------+---------+-----------+
| /a/coucou | a | /a | abnnnnn | deux |
| /a/coucou | a | /a | accb | trois |
| /a/coucou/test | a | /a/coucou | NULL | NULL |
+----------------+-------+-----------+---------+-----------+
*/
function changePath(login, path){
return [
{
path: '/a/coucou',
login: 'a',
parent: '/a',
file_id: 'abnnnnn',
file_name: 'deux'
},
{
path: '/a/coucou',
login: 'a',
parent: '/a',
file_id: 'accb',
file_name: 'trois'
},
{
path: '/a/coucou/test',
login: 'a',
parent: '/a/coucou',
file_id: 'NULL',
file_name: 'NULL'
}
];
}
exports.userExist = userExist;
exports.addUser = addUser;
exports.addPath = addPath;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment