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
+
+
+
+
+
+
+ );
+ }
+}
+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;