From 5b262eb8032294527ec0b167d005bfd936f79dda Mon Sep 17 00:00:00 2001 From: newtbot Date: Tue, 23 Jan 2024 01:44:11 +0800 Subject: [PATCH] Add JavaScript files and edit profile CSS 1) finished edit profile with delete profile --- consumerWebsite/functions/apiDatabase.js | 140 ++++++++------- consumerWebsite/middleware/authChecker.js | 3 +- consumerWebsite/public/css/all.css | 9 + consumerWebsite/public/css/profile.css | 100 ----------- consumerWebsite/public/images/logo.ico | Bin 0 -> 8617 bytes consumerWebsite/public/js/app.js | 63 ++++--- consumerWebsite/routes/user.js | 96 +++++++---- consumerWebsite/views/api.ejs | 4 +- consumerWebsite/views/bot.ejs | 4 - consumerWebsite/views/learnmore.ejs | 2 + consumerWebsite/views/logintop.ejs | 2 +- consumerWebsite/views/profile.ejs | 201 +++++++++++----------- consumerWebsite/views/signuplogin.ejs | 3 +- consumerWebsite/views/top.ejs | 3 +- 14 files changed, 296 insertions(+), 334 deletions(-) delete mode 100644 consumerWebsite/public/css/profile.css create mode 100644 consumerWebsite/public/images/logo.ico diff --git a/consumerWebsite/functions/apiDatabase.js b/consumerWebsite/functions/apiDatabase.js index 1114c37..5cadaa5 100644 --- a/consumerWebsite/functions/apiDatabase.js +++ b/consumerWebsite/functions/apiDatabase.js @@ -12,22 +12,18 @@ const { //getuser //api/v0/user/me async function getUserID(userid) { - //console.log(userid); - //console.log(userid.id); - let userRes = await userModel.findByPk(userid.id, { - attributes: { - exclude: ["password"], - }, - }); + //console.log(userid); + //console.log(userid.id); + let userRes = await userModel.findByPk(userid.id, { + attributes: { + exclude: ["password"], + }, + }); - if (!userRes) return false; - return userRes; - + if (!userRes) return false; + return userRes; } - - - //api/v0/auth/register /* Registering new user 1) req.body is taken from html form or wtv @@ -39,8 +35,8 @@ async function addUser(user) { let hash = await hashPassword(user.password); const addRes = await userModel.create({ - firstname: user.firstname, - lastname: user.lastname, + firstname: user.firstname, + lastname: user.lastname, username: user.username, password: hash, email: user.email, @@ -56,32 +52,32 @@ async function addUser(user) { //api/v0/auth/login async function loginUser(user) { - //console.log(user); - //look up username or email in db - const userRes = await userModel.findOne({ - where: { - [Op.or]: [ - { - username: user.username, - }, - { - email: user.username, - }, - ], - }, - }); - // Make sure user exists - if (!userRes) return false; - - // Compare passwords - let match = await comparePassword(user.password, userRes.password); - if (!match) return false; - //console.log('loginUser', userRes.id, userRes.username); + //console.log(user); + //look up username or email in db + const userRes = await userModel.findOne({ + where: { + [Op.or]: [ + { + username: user.username, + }, + { + email: user.username, + }, + ], + }, + }); + // Make sure user exists + if (!userRes) return false; - //generate token - let token = await addAPIKey(userRes.id, "auto-generated"); + // Compare passwords + let match = await comparePassword(user.password, userRes.password); + if (!match) return false; + //console.log('loginUser', userRes.id, userRes.username); - return { token: token, userid: userRes.id, username: userRes.username }; + //generate token + let token = await addAPIKey(userRes.id, "auto-generated"); + + return { token: token, userid: userRes.id, username: userRes.username }; } /* @@ -108,31 +104,53 @@ async function addAPIKey(userId, permission) { return token.id + "-" + hashtoken; } -//api/v0/user/logout -async function deleteUserToken(token) { - //get row id - let splitAuthToken = token.split("-"); - let rowid = splitAuthToken[0]; - - //console.log(rowid); - - //delete from db - let delRes = await apikeyModel.destroy({ - where: { - id: rowid, - }, - }); - - if (!delRes) return false; - return true; - - - +//api/v0/user/update +async function updateProfile(user, body) { + if (!body.password) { + let updateUser = await userModel.update( + { + firstname: body.first_name, + lastname: body.last_name, + username: body.username, + email: body.email, + address: body.address, + phone: body.phone, + }, + { + where: { + id: user.id, + }, + } + ); + if (!updateUser) return false; + return true; + } else { + let hash = await hashPassword(body.password); + let updateUser = await userModel.update( + { + firstname: body.first_name, + lastname: body.last_name, + username: body.username, + email: body.email, + address: body.address, + phone: body.phone, + password: hash, + }, + { + where: { + id: user.id, + }, + } + ); + if (!updateUser) return false; + return true; + } } + module.exports = { - getUserID, + getUserID, addUser, loginUser, + updateProfile, addAPIKey, - deleteUserToken, }; diff --git a/consumerWebsite/middleware/authChecker.js b/consumerWebsite/middleware/authChecker.js index b12ffe2..3f77691 100644 --- a/consumerWebsite/middleware/authChecker.js +++ b/consumerWebsite/middleware/authChecker.js @@ -12,6 +12,7 @@ async function auth(req, res, next){ //get from db let token = await apikeyModel.findByPk(rowid, {include: userModel}); + if (!token) return false; //compare let isMatch = await comparePassword(suppliedToken, token.apikey); @@ -20,7 +21,7 @@ async function auth(req, res, next){ //else do logic //pass hashed token to req.token (IMPORTANT ITS NOT PASSED TO CLIENT) req.token = token - req.user = await token.getUser(); + req.user = await token.getUser(); //taking user seq obj from usermodel next(); }catch(error){ next(error); diff --git a/consumerWebsite/public/css/all.css b/consumerWebsite/public/css/all.css index d3173e3..a213d9c 100644 --- a/consumerWebsite/public/css/all.css +++ b/consumerWebsite/public/css/all.css @@ -3813,3 +3813,12 @@ .card-text { color: #000000; } + +/* edit profile */ +.profile { + margin: auto; + width: 40%; + border: 1px solid #000000; + padding: 10px; +} + diff --git a/consumerWebsite/public/css/profile.css b/consumerWebsite/public/css/profile.css deleted file mode 100644 index 18eaded..0000000 --- a/consumerWebsite/public/css/profile.css +++ /dev/null @@ -1,100 +0,0 @@ -.btn-delete { - background-color: red; - color: white; -} - -.ui-w-80 { - width: 80px !important; - height: auto; -} - -.btn-default { - border-color: rgba(24,28,33,0.1); - background: rgba(0,0,0,0); - color: #4E5155; -} - -label.btn { - margin-bottom: 0; -} - -.btn-outline-primary { - border-color: #26B4FF; - background: transparent; - color: #26B4FF; -} - -.btn { - cursor: pointer; -} - -.text-light { - color: #babbbc !important; -} - -.btn-facebook { - border-color: rgba(0,0,0,0); - background: #3B5998; - color: #fff; -} - -.btn-instagram { - border-color: rgba(0,0,0,0); - background: #000; - color: #fff; -} - -.card { - background-clip: padding-box; - box-shadow: 0 1px 4px rgba(24,28,33,0.012); -} - -.row-bordered { - overflow: hidden; -} - -.account-settings-fileinput { - position: absolute; - visibility: hidden; - width: 1px; - height: 1px; - opacity: 0; -} -.account-settings-links .list-group-item.active { - font-weight: bold !important; -} -html:not(.dark-style) .account-settings-links .list-group-item.active { - background: transparent !important; -} -.account-settings-multiselect ~ .select2-container { - width: 100% !important; -} -.light-style .account-settings-links .list-group-item { - padding: 0.85rem 1.5rem; - border-color: rgba(24, 28, 33, 0.03) !important; -} -.light-style .account-settings-links .list-group-item.active { - color: #4e5155 !important; -} -.material-style .account-settings-links .list-group-item { - padding: 0.85rem 1.5rem; - border-color: rgba(24, 28, 33, 0.03) !important; -} -.material-style .account-settings-links .list-group-item.active { - color: #4e5155 !important; -} -.dark-style .account-settings-links .list-group-item { - padding: 0.85rem 1.5rem; - border-color: rgba(255, 255, 255, 0.03) !important; -} -.dark-style .account-settings-links .list-group-item.active { - color: #fff !important; -} -.light-style .account-settings-links .list-group-item.active { - color: #4E5155 !important; -} -.light-style .account-settings-links .list-group-item { - padding: 0.85rem 1.5rem; - border-color: rgba(24,28,33,0.03) !important; -} - diff --git a/consumerWebsite/public/images/logo.ico b/consumerWebsite/public/images/logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..8b55d25eccf16ad85279de84ab2b857dd36d004c GIT binary patch literal 8617 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 - - \ No newline at end of file + + diff --git a/consumerWebsite/views/bot.ejs b/consumerWebsite/views/bot.ejs index 931a5a2..c383677 100644 --- a/consumerWebsite/views/bot.ejs +++ b/consumerWebsite/views/bot.ejs @@ -81,11 +81,7 @@

- - - - \ No newline at end of file diff --git a/consumerWebsite/views/learnmore.ejs b/consumerWebsite/views/learnmore.ejs index f5e89e8..5ef406f 100644 --- a/consumerWebsite/views/learnmore.ejs +++ b/consumerWebsite/views/learnmore.ejs @@ -38,5 +38,7 @@

+ + <%- include('bot') %> diff --git a/consumerWebsite/views/logintop.ejs b/consumerWebsite/views/logintop.ejs index 3c5eb62..e5dc928 100644 --- a/consumerWebsite/views/logintop.ejs +++ b/consumerWebsite/views/logintop.ejs @@ -6,7 +6,7 @@ - + diff --git a/consumerWebsite/views/profile.ejs b/consumerWebsite/views/profile.ejs index 4163961..0670852 100644 --- a/consumerWebsite/views/profile.ejs +++ b/consumerWebsite/views/profile.ejs @@ -1,112 +1,111 @@ <%- include('top') %> - - - -
-
-

Profile -

-
-
-

-
- - - -
-
- -
-
-
- -
- -
-
-   -
Allowed JPG, GIF or PNG. Max size of 800K
-
-
-
- -
-
- - -
-
- - -
-
- - -
-
- - -
- Your email is not confirmed. Please check your inbox.
- Resend confirmation -
-
-
- - -
-
- - -
-
- -
-
-
- -
- - -
- -
- - -
- -
- - -
- -
+
+
+ +
+ +
+

Edit Personal Information

+
+
+
+
+ +
-
-
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+
+
+ + -
-   - - +
+
+
+
+
+
+
+ +
+
+
+ +
+
+
-
-
+
+
+
+
+
+ + <%- include('bot') %> \ No newline at end of file diff --git a/consumerWebsite/views/signuplogin.ejs b/consumerWebsite/views/signuplogin.ejs index f0ca40f..8543704 100644 --- a/consumerWebsite/views/signuplogin.ejs +++ b/consumerWebsite/views/signuplogin.ejs @@ -9,6 +9,7 @@