mirror of
https://github.com/nowcommunity/nowdatabase.git
synced 2026-10-12 19:13:52 +03:00
Add role requirements to new write routes
This commit is contained in:
@@ -4,7 +4,6 @@ import { fixBigInt } from '../utils/common'
|
||||
import { EditDataType, EditMetaData, LocalityDetailsType } from '../../../frontend/src/backendTypes'
|
||||
import { requireOneOf } from '../middlewares/authorizer'
|
||||
import { Role } from '../../../frontend/src/types'
|
||||
// import { deleteLocality } from '../services/write/delete'
|
||||
import { writeLocality } from '../services/write/locality'
|
||||
|
||||
const router = Router()
|
||||
@@ -23,8 +22,7 @@ router.get('/:id', async (req, res) => {
|
||||
|
||||
router.put(
|
||||
'/',
|
||||
requireOneOf([Role.Admin, Role.EditRestricted, Role.EditUnrestricted]),
|
||||
// TODO: Check if edit restricted has rights to edit the locality.
|
||||
requireOneOf([Role.Admin, Role.EditUnrestricted]),
|
||||
async (req: Request<object, object, { locality: EditDataType<LocalityDetailsType> & EditMetaData }>, res) => {
|
||||
const { comment, references, ...editedLocality } = req.body.locality
|
||||
const validationErrors = validateEntireLocality(editedLocality)
|
||||
|
||||
@@ -3,6 +3,8 @@ import { getAllSpecies, getSpeciesDetails } from '../services/species'
|
||||
import { fixBigInt } from '../utils/common'
|
||||
import { EditMetaData, SpeciesDetailsType } from '../../../frontend/src/backendTypes'
|
||||
import { writeSpecies } from '../services/write/species'
|
||||
import { requireOneOf } from '../middlewares/authorizer'
|
||||
import { Role } from '../../../frontend/src/types'
|
||||
|
||||
const router = Router()
|
||||
|
||||
@@ -18,11 +20,15 @@ router.get('/:id', async (req, res) => {
|
||||
return res.status(200).send(fixBigInt(species))
|
||||
})
|
||||
|
||||
router.put('/', async (req: Request<object, object, { species: SpeciesDetailsType & EditMetaData }>, res) => {
|
||||
const editedSpecies = req.body.species
|
||||
const { comment, references } = editedSpecies
|
||||
const id = await writeSpecies(editedSpecies, comment, references, req.user!.initials)
|
||||
return res.status(200).send({ id })
|
||||
})
|
||||
router.put(
|
||||
'/',
|
||||
requireOneOf([Role.Admin, Role.EditUnrestricted]),
|
||||
async (req: Request<object, object, { species: SpeciesDetailsType & EditMetaData }>, res) => {
|
||||
const editedSpecies = req.body.species
|
||||
const { comment, references } = editedSpecies
|
||||
const id = await writeSpecies(editedSpecies, comment, references, req.user!.initials)
|
||||
return res.status(200).send({ id })
|
||||
}
|
||||
)
|
||||
|
||||
export default router
|
||||
|
||||
@@ -3,6 +3,8 @@ import { getAllTimeBounds, getTimeBoundDetails, getTimeBoundTimeUnits } from '..
|
||||
import { fixBigInt } from '../utils/common'
|
||||
import { EditDataType, EditMetaData, TimeBoundDetailsType } from '../../../frontend/src/backendTypes'
|
||||
import { writeTimeBound } from '../services/write/timeBound'
|
||||
import { requireOneOf } from '../middlewares/authorizer'
|
||||
import { Role } from '../../../frontend/src/types'
|
||||
|
||||
const router = Router()
|
||||
|
||||
@@ -26,6 +28,7 @@ router.get('/time-units/:id', async (req, res) => {
|
||||
|
||||
router.put(
|
||||
'/',
|
||||
requireOneOf([Role.Admin, Role.EditUnrestricted]),
|
||||
async (req: Request<object, object, { timeBound: EditDataType<TimeBoundDetailsType> & EditMetaData }>, res) => {
|
||||
const { comment, references, ...editedTimeBound } = req.body.timeBound
|
||||
const result = await writeTimeBound(editedTimeBound, comment, references, req.user!.initials)
|
||||
|
||||
@@ -4,6 +4,8 @@ import { fixBigInt } from '../utils/common'
|
||||
import { EditDataType, EditMetaData, TimeUnitDetailsType } from '../../../frontend/src/backendTypes'
|
||||
import { getAllSequences } from '../services/sequence'
|
||||
import { writeTimeUnit } from '../services/write/timeUnit'
|
||||
import { requireOneOf } from '../middlewares/authorizer'
|
||||
import { Role } from '../../../frontend/src/types'
|
||||
|
||||
const router = Router()
|
||||
|
||||
@@ -32,6 +34,7 @@ router.get('/localities/:id', async (req, res) => {
|
||||
|
||||
router.put(
|
||||
'/',
|
||||
requireOneOf([Role.Admin, Role.EditUnrestricted]),
|
||||
async (req: Request<object, object, { timeUnit: EditDataType<TimeUnitDetailsType> & EditMetaData }>, res) => {
|
||||
const { comment, references, ...editedTimeUnit } = req.body.timeUnit
|
||||
const result = await writeTimeUnit(editedTimeUnit, comment, references, req.user!.initials)
|
||||
|
||||
Reference in New Issue
Block a user