mirror of
https://github.com/UniversityOfHelsinkiCS/ohtuilmo.git
synced 2026-10-12 19:03:41 +03:00
added dev route to backend to change current role
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
const test_users = {
|
||||
student: {
|
||||
employeenumber: '',
|
||||
mail: '',
|
||||
hypersonstudentid: '112345701',
|
||||
uid: 'johnsmith',
|
||||
givenname: 'John',
|
||||
sn: 'Smith',
|
||||
},
|
||||
instructor: {
|
||||
employeenumber: '',
|
||||
mail: '',
|
||||
hypersonstudentid: '112345699',
|
||||
uid: 'olliohj',
|
||||
givenname: 'Olli',
|
||||
sn: 'Ohjaaja',
|
||||
},
|
||||
admin: {
|
||||
employeenumber: '',
|
||||
mail: '',
|
||||
hypersonstudentid: '011120775',
|
||||
uid: 'mluukkai',
|
||||
givenname: 'Matti',
|
||||
sn: 'Luukkainen',
|
||||
},
|
||||
}
|
||||
|
||||
// Used in fake_shibbo middleware
|
||||
//
|
||||
// NOTE: This has to be an object because by default
|
||||
// js imports are copies of the values but objects
|
||||
// are passed by reference (like pointers in c/cpp)
|
||||
let test_user = { test_user: test_users.student }
|
||||
|
||||
module.exports = {
|
||||
test_user,
|
||||
test_users
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
const devRouter = require('express').Router()
|
||||
const { test_user, test_users } = require('../config/dev')
|
||||
|
||||
console.info('Initial user', test_user.test_user)
|
||||
|
||||
// This is not the best place for this, but it was the most simple
|
||||
// solution, as I didn't want to share state between middlewares and index.js
|
||||
// and test_user is a shared local var between router and fake_shibbo.
|
||||
devRouter.post('/', (req, res) => {
|
||||
const role = req.body.role
|
||||
switch (role) {
|
||||
case 'student':
|
||||
test_user.test_user = test_users.student
|
||||
break
|
||||
case 'instructor':
|
||||
test_user.test_user = test_users.instructor
|
||||
break
|
||||
case 'admin':
|
||||
test_user.test_user = test_users.admin
|
||||
break
|
||||
default:
|
||||
console.warn('Didn\'t match any, defaulting to student')
|
||||
test_user.test_user = test_users.student
|
||||
break
|
||||
}
|
||||
|
||||
console.info('Logged in as', test_user.test_user)
|
||||
return res.status(200).json({ role })
|
||||
})
|
||||
|
||||
module.exports = devRouter
|
||||
@@ -60,6 +60,7 @@ const instructorTimeLogsRouter = require('./controllers/instructorTimeLogs')
|
||||
const sprintRouter = require('./controllers/sprints')
|
||||
const groupSprintSummaryRouter = require('./controllers/groupSprintSummary')
|
||||
const tagsRouter = require('./controllers/tags')
|
||||
const devRouter = require('./controllers/dev')
|
||||
app.use('/api/login', loginRouter)
|
||||
app.use('/api/logout', logoutRouter)
|
||||
app.use('/api/topics', topicsRouter)
|
||||
@@ -83,6 +84,8 @@ app.use('/api/instructorTimeLogs', instructorTimeLogsRouter)
|
||||
app.use('/api/sprints', sprintRouter)
|
||||
app.use('/api/groupSprintSummary', groupSprintSummaryRouter)
|
||||
app.use('/api/tags', tagsRouter)
|
||||
if (process.env.NODE_ENV === 'development')
|
||||
app.use('/api/role', devRouter)
|
||||
|
||||
|
||||
console.log('NODE_ENV:', process.env.NODE_ENV)
|
||||
|
||||
+8
-35
@@ -1,6 +1,7 @@
|
||||
// @ts-check
|
||||
const jwt = require('jsonwebtoken')
|
||||
const config = require('./config')
|
||||
const { test_user } = require('./config/dev')
|
||||
|
||||
/**
|
||||
* @typedef {import("express").Request} Request
|
||||
@@ -100,42 +101,14 @@ const checkAdmin = (req, res, next) => {
|
||||
|
||||
/** @type {RequestHandler} */
|
||||
const fakeshibbo = (req, res, next) => {
|
||||
const test_users = {
|
||||
student: {
|
||||
employeenumber: '',
|
||||
mail: '',
|
||||
hypersonstudentid: '112345701',
|
||||
uid: 'johnsmith',
|
||||
givenname: 'John',
|
||||
sn: 'Smith',
|
||||
},
|
||||
instructor: {
|
||||
employeenumber: '',
|
||||
mail: '',
|
||||
hypersonstudentid: '112345699',
|
||||
uid: 'olliohj',
|
||||
givenname: 'Olli',
|
||||
sn: 'Ohjaaja',
|
||||
},
|
||||
admin: {
|
||||
employeenumber: '',
|
||||
mail: '',
|
||||
hypersonstudentid: '011120775',
|
||||
uid: 'mluukkai',
|
||||
givenname: 'Matti',
|
||||
sn: 'Luukkainen',
|
||||
},
|
||||
}
|
||||
const user = test_user.test_user
|
||||
|
||||
// select one of the following: student, instructor, admin
|
||||
const test_user = test_users.admin
|
||||
|
||||
req.headers.employeenumber = test_user.employeenumber
|
||||
req.headers.mail = test_user.mail
|
||||
req.headers.hypersonstudentid = test_user.hypersonstudentid
|
||||
req.headers.uid = test_user.uid
|
||||
req.headers.givenname = test_user.givenname
|
||||
req.headers.sn = test_user.sn
|
||||
req.headers.employeenumber = user.employeenumber
|
||||
req.headers.mail = user.mail
|
||||
req.headers.hypersonstudentid = user.hypersonstudentid
|
||||
req.headers.uid = user.uid
|
||||
req.headers.givenname = user.givenname
|
||||
req.headers.sn = user.sn
|
||||
next()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user