diff --git a/backend/src/routes/authRoutes.ts b/backend/src/routes/authRoutes.ts index f7b0537..e50599f 100644 --- a/backend/src/routes/authRoutes.ts +++ b/backend/src/routes/authRoutes.ts @@ -2,12 +2,13 @@ import express, { Request, Response } from 'express'; import bcrypt, { hash } from 'bcrypt'; import jwt from 'jsonwebtoken'; import User from '../models/auth'; +import { verifyToken } from '../middleware/authBlog'; const router = express.Router(); -router.get('/data', async (req: Request, res: Response) => { +router.get('/data', verifyToken, async (req: Request, res: Response) => { const info = await User.find(); res.send(info); }); diff --git a/src/js/admin.js b/src/js/admin.js index 4e3706f..5ce5731 100644 --- a/src/js/admin.js +++ b/src/js/admin.js @@ -290,6 +290,72 @@ document.addEventListener('click', function(event) { } }); +document.getElementById('show-users').addEventListener('click', function() { + document.querySelector('.users').style.display = 'flex'; + setTimeout(() => { + document.querySelector('.users').style.opacity = '1'; + }, 300); + + try { + const token = localStorage.getItem('token'); + fetch('https://my-brand-ken-ganza-1.onrender.com/v1/auth/data', { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${token}` + } + }) + .then(response => { + if (!response.ok) { + throw new Error('User fetch failed'); + } else { + return response.json(); + } + }) + .then(data => { + console.log(data); + const users = data; + const usersList = document.querySelector('.user-card'); + usersList.innerHTML = ''; + users.forEach(user => { + const userCard = document.createElement('div'); + userCard.classList.add('user-card'); + + const userDetails = document.createElement('div'); + userDetails.classList.add('user-details'); + + const userName = document.createElement('p'); + userName.textContent = user.username; + + const userEmail = document.createElement('p'); + userEmail.textContent = user.email; + + const accountType = document.createElement('p'); + accountType.textContent = user.account; + + const profileIcon = document.createElement('i'); + profileIcon.classList.add('fa-solid', 'fa-user'); + + const threeDots = document.createElement('i'); + threeDots.classList.add('fa-solid', 'fa-ellipsis-vertical'); + threeDots.setAttribute('onclick', 'openoverlay()'); + + userDetails.appendChild(userName); + userDetails.appendChild(userEmail); + userDetails.appendChild(accountType); + + usersList.appendChild(profileIcon); + usersList.appendChild(userDetails); + usersList.appendChild(threeDots); + }); + }) + + } + catch(error) { + console.log(error); + } +}) + document.querySelector('.userdelete').addEventListener('click', function() { document.querySelector('.delete-user-confirmation').style.display = 'block'; document.getElementById('no').addEventListener('click', function() { @@ -387,11 +453,9 @@ document.querySelector('.messageUser').addEventListener('click', function() { document.getElementById('show-messages').addEventListener('click', function() { document.querySelector('.contacts').style.display = 'flex'; - setTimeout(() => { document.querySelector('.contacts').style.opacity = '1'; - }, 300); - + }, 300); }); document.getElementById('show-subs').addEventListener('click', function() { diff --git a/src/pages/admin.html b/src/pages/admin.html index a6236c3..91d6793 100644 --- a/src/pages/admin.html +++ b/src/pages/admin.html @@ -500,14 +500,14 @@

Danger Zone

- +

Ken

Admin

-

Id: 2403001

+

Email

diff --git a/src/styles/admin.css b/src/styles/admin.css index f47bae0..8704c91 100644 --- a/src/styles/admin.css +++ b/src/styles/admin.css @@ -904,6 +904,11 @@ nav ul li::after { gap: 50px; padding: 20px; } +.users { + display: none; + transition: opacity 0.5s; + opacity: 0; +} .user-card, .contact-card { display: flex; flex-direction: column;