23 lines
1.2 KiB
TypeScript
23 lines
1.2 KiB
TypeScript
import Router from '@koa/router'
|
|
import * as ctrl from '../controllers/auth'
|
|
import { requireSuperAdmin } from '../middleware/user-auth'
|
|
|
|
// Public routes (no auth required)
|
|
export const authPublicRoutes = new Router()
|
|
authPublicRoutes.get('/api/auth/status', ctrl.authStatus)
|
|
authPublicRoutes.post('/api/auth/login', ctrl.login)
|
|
|
|
// Protected routes (auth required)
|
|
export const authProtectedRoutes = new Router()
|
|
authProtectedRoutes.post('/api/auth/setup', ctrl.setupPassword)
|
|
authProtectedRoutes.get('/api/auth/me', ctrl.currentUser)
|
|
authProtectedRoutes.post('/api/auth/change-password', ctrl.changePassword)
|
|
authProtectedRoutes.post('/api/auth/change-username', ctrl.changeUsername)
|
|
authProtectedRoutes.delete('/api/auth/password', ctrl.removePassword)
|
|
authProtectedRoutes.get('/api/auth/users', requireSuperAdmin, ctrl.listManagedUsers)
|
|
authProtectedRoutes.post('/api/auth/users', requireSuperAdmin, ctrl.createManagedUser)
|
|
authProtectedRoutes.put('/api/auth/users/:id', requireSuperAdmin, ctrl.updateManagedUser)
|
|
authProtectedRoutes.delete('/api/auth/users/:id', requireSuperAdmin, ctrl.deleteManagedUser)
|
|
authProtectedRoutes.get('/api/auth/locked-ips', ctrl.listLockedIps)
|
|
authProtectedRoutes.delete('/api/auth/locked-ips', ctrl.unlockIpHandler)
|