From 0ad12aad0ad795e58bded60ea438fad146300ca3 Mon Sep 17 00:00:00 2001 From: "karl.hudgell" Date: Mon, 22 Feb 2021 11:15:14 +0000 Subject: [PATCH] updates --- app.js | 13 ++-- client/src/App.js | 3 +- client/src/components/AddAccount.jsx | 95 ++++++++++++++++++++++++++ client/src/components/Home.jsx | 18 ++--- client/src/components/Navigation.jsx | 11 ++- client/src/components/accountTable.jsx | 16 +++-- client/src/components/index.js | 3 +- lib/getUser.js | 2 +- lib/getUsers.js | 37 ++++++++++ routes/addAccount.js | 6 +- routes/login.js | 6 +- routes/readCookie.js | 10 ++- 12 files changed, 182 insertions(+), 38 deletions(-) create mode 100644 client/src/components/AddAccount.jsx create mode 100644 lib/getUsers.js diff --git a/app.js b/app.js index ffabe39..97bd915 100644 --- a/app.js +++ b/app.js @@ -4,6 +4,8 @@ var path = require('path'); var cookieParser = require('cookie-parser'); var logger = require('morgan'); +const { getUsers } = require('./lib/getUsers') + var indexRouter = require('./routes/index'); var streamsRouter = require('./routes/getStreams'); var getUserAccounts = require('./routes/getUserAccounts') @@ -24,12 +26,11 @@ app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser('82e4e438a0705fabf61f9854e3b575af')); app.use(express.static(path.join(__dirname, 'public'))); + +let usersList = getUsers() + const users = { - users: { - 'Karl': 'TEST', - 'Darren': 'TEST', - 'Duly': 'TEST', - }, + users: usersList, challenge: true, realm: 'foo', } @@ -39,7 +40,7 @@ app.use('/login', basicAuth(users), login) app.use('/getStreams', streamsRouter); app.use('/getUserAccounts', getUserAccounts); app.use('/singleCheck', basicAuth(users), singleUserCheck) -app.use('/addAccount', basicAuth(users), addAccount) +app.use('/addAccount', addAccount) app.use('/readCookie', readCookie) diff --git a/client/src/App.js b/client/src/App.js index 5878159..6c44466 100644 --- a/client/src/App.js +++ b/client/src/App.js @@ -1,6 +1,6 @@ import React from "react"; import { BrowserRouter as Router, Route, Switch } from "react-router-dom"; -import { Navigation, Footer, Home, Accounts, ServerList } from "./components"; +import { Navigation, Footer, Home, Accounts, ServerList, AddAccount } from "./components"; function App() { return (
@@ -10,6 +10,7 @@ function App() { } /> } /> } /> + } />
diff --git a/client/src/components/AddAccount.jsx b/client/src/components/AddAccount.jsx new file mode 100644 index 0000000..511c526 --- /dev/null +++ b/client/src/components/AddAccount.jsx @@ -0,0 +1,95 @@ +import React, { Component } from "react"; +import axios from "axios"; + +class AddAccount extends Component { + constructor() { + super(); + this.state = { + username: "", + password: "", + stream: "", + }; + } + + componentDidMount() { + // fetch("/getStreams") + // .then((res) => res.json()) + // .then((streams) => this.setState({ streams })); + } + + onChange = (e) => { + /* + Because we named the inputs to match their + corresponding values in state, it's + super easy to update the state + */ + this.setState({ [e.target.name]: e.target.value }); + }; + + onSubmit = (e) => { + e.preventDefault(); + // get our form data out of state + const { username, password, stream } = this.state; + + console.log({ username, password, stream }); + + axios + .post(`/addAccount`, { + username, + password, + stream, + }) + .then((res) => { + console.log(res); + console.log(res.data); + }); + }; + + render() { + const { username, password, stream } = this.state; + + return ( +
+
+
+

Add An Account

+

+

+

+ UserName - + +

+

+ Password - + +

+

+ Stream Name - + +

+
+ +
+

+
+
+
+ ); + } +} +export default AddAccount; diff --git a/client/src/components/Home.jsx b/client/src/components/Home.jsx index e49df4a..aade38f 100644 --- a/client/src/components/Home.jsx +++ b/client/src/components/Home.jsx @@ -38,8 +38,7 @@ function View(props) { } function App() { - const [screen, setScreen] = useState("auth"); - const [username, setUsername] = useState(); + const [username, setUsername] = useState(); const [password, setPassword] = useState(); const auth = async () => { @@ -48,8 +47,8 @@ function App() { auth: { username, password }, }); - if (res.data.screen !== undefined) { - setScreen('/about'); + if (res.data !== undefined) { + // setScreen('/about'); } } catch (e) { console.log(e); @@ -60,11 +59,12 @@ function App() { try { const res = await axios.get("/readCookie"); - if (res.data.screen !== undefined) { - setScreen(res.data.screen); + if (res.data !== "No Cookie Set") { + // document.location = "/accounts" + // this.props.history.push('/accounts'); } } catch (e) { - setScreen("auth"); + // setScreen("auth"); console.log(e); } }; @@ -75,7 +75,6 @@ function App() { return (
- {screen === "auth" ? (

@@ -90,9 +89,6 @@ function App() {
- ) : ( - - )}
); } diff --git a/client/src/components/Navigation.jsx b/client/src/components/Navigation.jsx index 85a4615..fda5c6d 100644 --- a/client/src/components/Navigation.jsx +++ b/client/src/components/Navigation.jsx @@ -31,7 +31,7 @@ function Navigation(props) { Accounts -
  • Server List +
  • */} +
  • + + Add Account +
  • diff --git a/client/src/components/accountTable.jsx b/client/src/components/accountTable.jsx index 7b47ce4..47a968f 100644 --- a/client/src/components/accountTable.jsx +++ b/client/src/components/accountTable.jsx @@ -39,11 +39,13 @@ export default class MatDataTable extends Component { this.setState({ person: results.data }); var newArr = results.data.map(function (val) { + let date = new Date(val.expiaryDate * 1000); + let d = date.toGMTString(); return { username: val.username, streamName: val.streamName, streamURL: val.streamURL, - expiaryDate: val.expiaryDate + expiaryDate: d, }; }); console.log(results.data.results); @@ -61,7 +63,9 @@ export default class MatDataTable extends Component { render() { return ( -
    +
    Object.assign(obj, { [item.userName]: item.password }), {}); + + return object + } +} + +function getUserName(userId) { + let data = sql.query(`SELECT + userName + FROM users + WHERE idusers = ${userId} + `) + // console.log(data) + if (data.length == 0) { + return 'User Not Found' + } else { + return data[0].userName + } +} + +module.exports = { + getUsers, getUserName +} + diff --git a/routes/addAccount.js b/routes/addAccount.js index 3a11bdd..5c660a7 100644 --- a/routes/addAccount.js +++ b/routes/addAccount.js @@ -2,17 +2,19 @@ var express = require('express'); var router = express.Router(); const { storeAccountToDB } = require('../lib/addAccounts') - +const { getUserName } = require('../lib/getUsers') /* POST postUser page. */ router.post('/', async function (req, res, next) { let postData = req.body + postData.userId = Number(req.signedCookies.user) + let userName = await getUserName(req.signedCookies.user) let result = await storeAccountToDB(postData) console.log(result) if (result.affectedRows < 1) { res.send('Adding account failed') } else { - res.send('Account ' + postData.username + ' Added successfully') + res.send('Account ' + postData.username + ' Added successfully to ' + userName) } }); diff --git a/routes/login.js b/routes/login.js index 297b535..795964f 100644 --- a/routes/login.js +++ b/routes/login.js @@ -9,13 +9,13 @@ router.get('/', function (req, res, next) { } try { if (req.auth.user === 'Karl') { - res.cookie('user', 'Karl', options) + res.cookie('user', 1, options) } else if (req.auth.user === 'Darren') { - res.cookie('user', 'Darren', options) + res.cookie('user', 2, options) } else if (req.auth.user === 'Duly') { - res.cookie('user', 'Duly', options) + res.cookie('user', 3, options) } } catch (error) { res.render('index', { title: 'No Auth' }); diff --git a/routes/readCookie.js b/routes/readCookie.js index 5720219..d076696 100644 --- a/routes/readCookie.js +++ b/routes/readCookie.js @@ -3,17 +3,15 @@ var router = express.Router(); /* POST postUser page. */ router.get('/', async function (req, res, next) { - if (req.signedCookies.user === 'Karl') { - res.send(req.signedCookies); - } else if (req.signedCookies.name === 'user') { - res.send({ screen: 'user' }); - } else { + if (req.signedCookies.user === undefined) { res.send('No Cookie Set'); + } else { + res.send(req.signedCookies); } }); router.get('/clear', (req, res) => { res.clearCookie('user').end(); - }); +}); module.exports = router;