Skip to content

Commit

Permalink
shop and admin panel
Browse files Browse the repository at this point in the history
  • Loading branch information
NebraskyTheWolf committed Jan 27, 2024
1 parent 11a0d5d commit 50b8761
Show file tree
Hide file tree
Showing 8 changed files with 63 additions and 59 deletions.
10 changes: 10 additions & 0 deletions src/api/Server/BaseWebMiddleware.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import Base from "../../abstracts/Base";
import { Request, Response } from "express";

export default abstract class BaseWebMiddleware extends Base {
public constructor(name: string, descirption?: string) {
super(name, descirption, "SERVER")
}

public abstract handle(request: Request, response: Response, next): void
}
3 changes: 0 additions & 3 deletions src/api/website/index.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
import express, { Request, Response } from 'express'
import Tuple from '@riniya.ts/utils/Tuple'
import AbstractRoutes from '../Server/AbstractRoutes'
import http from 'http'
import session from 'express-session'
import { v4 } from 'uuid'
import * as parser from 'body-parser'
import CAuthMiddleware from './middleware/CAuthMiddleware'
import path from 'path'
import Auth from './routes/Auth'
import Index from './routes/index'
Expand Down
23 changes: 0 additions & 23 deletions src/api/website/middleware/CAdminAuthentication.ts

This file was deleted.

15 changes: 0 additions & 15 deletions src/api/website/middleware/CAuthMiddleware.ts

This file was deleted.

25 changes: 14 additions & 11 deletions src/api/website/routes/Admin.ts
Original file line number Diff line number Diff line change
@@ -1,52 +1,55 @@
import { Request } from "express"
import CAdminAuthentication from '../middleware/CAdminAuthentication'
import AbstractWebRoutes from '../../Server/AbstractWebRoutes'
import { isAdminLogged } from '../utils/Middleware'

export default class Admin extends AbstractWebRoutes {
async register () {
this.router.get('/', new CAdminAuthentication().handle, function (req: Request, res) {

this.prefix = 'admin'

this.router.get('/', isAdminLogged, function (req: Request, res) {

})

// Guilds

this.router.get('/servers', new CAdminAuthentication().handle, function (req: Request, res) {
this.router.get('/servers', isAdminLogged, function (req: Request, res) {

})

this.router.get('/servers/:guild/edit', new CAdminAuthentication().handle, function (req: Request, res) {
this.router.get('/servers/:guild/edit', isAdminLogged, function (req: Request, res) {

})

this.router.post('/servers/:guild/edit/callback', new CAdminAuthentication().handle, function (req: Request, res) {
this.router.post('/servers/:guild/edit/callback', isAdminLogged, function (req: Request, res) {

})

// Users

this.router.get('/users', new CAdminAuthentication().handle, function (req: Request, res) {
this.router.get('/users', isAdminLogged, function (req: Request, res) {

})

this.router.get('/users/:user/edit', new CAdminAuthentication().handle, function (req: Request, res) {
this.router.get('/users/:user/edit', isAdminLogged, function (req: Request, res) {

})

this.router.post('/users/:user/edit/callback', new CAdminAuthentication().handle, function (req: Request, res) {
this.router.post('/users/:user/edit/callback', isAdminLogged, function (req: Request, res) {

})

// Messages

this.router.get('/messages', new CAdminAuthentication().handle, function (req: Request, res) {
this.router.get('/messages', isAdminLogged, function (req: Request, res) {

})

this.router.get('/messages/:message/edit', new CAdminAuthentication().handle, function (req: Request, res) {
this.router.get('/messages/:message/edit', isAdminLogged, function (req: Request, res) {

})

this.router.post('/messages/:message/edit/callback', new CAdminAuthentication().handle, function (req: Request, res) {
this.router.post('/messages/:message/edit/callback', isAdminLogged, function (req: Request, res) {

})

Expand Down
8 changes: 4 additions & 4 deletions src/api/website/routes/Dashboard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ import { IUser } from '../passport'
import Guild from '@riniya.ts/database/Guild/Guild'
import { isNull } from '@riniya.ts/types'
import Riniya from '@riniya.ts'
import CAuthMiddleware from '../middleware/CAuthMiddleware'
import AbstractWebRoutes from '../../Server/AbstractWebRoutes'
import { isUserLogged } from '../utils/Middleware'

export default class Dashboard extends AbstractWebRoutes {
async register () {
this.isProtected = true;

this.prefix = 'dashboard'

this.router.get('/onboard/setup/:guild/:step', new CAuthMiddleware().handle, async function (req: Request, res) {
this.router.get('/onboard/setup/:guild/:step', isUserLogged, async function (req: Request, res) {
const user = req.user as IUser
res.render('dashboard/views/onboard', {
title: 'Setting up RINIYA',
Expand All @@ -23,7 +23,7 @@ export default class Dashboard extends AbstractWebRoutes {
isFirst: true
})
})
this.router.get('/onboard', new CAuthMiddleware().handle, async function (req: Request, res) {
this.router.get('/onboard', isUserLogged, async function (req: Request, res) {
const user = req.user as IUser
const userGuilds = user.guilds.map(async x => {
const dGuild = Riniya.instance.guilds.cache.get(x.id);
Expand Down Expand Up @@ -54,7 +54,7 @@ export default class Dashboard extends AbstractWebRoutes {
})

// Dynamic router
this.router.get('/:guildId/:slug?/:route?/:operation?/:id?', new CAuthMiddleware().handle, async function (req: Request, res) {
this.router.get('/:guildId/:slug?/:route?/:operation?/:id?', isUserLogged, async function (req: Request, res) {
// User and guilds data
const user = req.user as IUser

Expand Down
6 changes: 3 additions & 3 deletions src/api/website/routes/Shop.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
import { Request } from "express"
import { IUser } from '../passport'
import CAuthMiddleware from '../middleware/CAuthMiddleware'
import AbstractWebRoutes from '../../Server/AbstractWebRoutes'
import { isUserLogged } from '../utils/Middleware'

export default class Shop extends AbstractWebRoutes {
async register () {
this.prefix = 'shop'

this.router.get('/', new CAuthMiddleware().handle, function (req: Request, res) {
this.router.get('/', isUserLogged, function (req: Request, res) {
res.render('shop/index', {
user: (req.user as IUser)
})
})

this.router.post('/confirm', new CAuthMiddleware().handle, function (req: Request, res) {
this.router.post('/confirm', isUserLogged, function (req: Request, res) {

})
}
Expand Down
32 changes: 32 additions & 0 deletions src/api/website/utils/Middleware.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { Response, Request, NextFunction } from 'express'
import { isNull } from '@riniya.ts/types'
import Admin, { Admin as IAdm } from '@riniya.ts/database/Security/Admin'
import { IUser } from '../passport'

export interface IAdmin extends IUser {
admin?: IAdm;
}

export function isUserLogged(req: Request, res: Response, next: NextFunction) {
if (req.user) {
next()
} else {
return res.redirect("https://www.riniya.uk/user/login")
}
}

export async function isAdminLogged(req: Request, res: Response, next: NextFunction) {
if (req.isAuthenticated()) {

const adm = req.user as IAdmin;

const account = await Admin.findOne({ userId: adm.admin.userId })
if (isNull(account)) {
return res.render('dashboard/views/errors/403')
}

next()
} else {
return res.redirect("https://www.riniya.uk/admin/login")
}
}

0 comments on commit 50b8761

Please sign in to comment.