35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
import express from 'express';
|
|
import { userService } from '../services/userService.js';
|
|
import { auth } from '../middleware/auth';
|
|
import { Request, Response } from 'express';
|
|
import { User } from '../../src/types/auth.ts';
|
|
|
|
const router = express.Router();
|
|
|
|
router.get('/', auth, async (req: Request, res: Response) => {
|
|
try {
|
|
if (!req.user?.permissions.isAdmin) {
|
|
return res.status(403).json({ error: 'Admin access required' });
|
|
}
|
|
const users = await userService.getUsers();
|
|
res.json(users);
|
|
} catch (error) {
|
|
res.status(500).json({ error: 'Server error' });
|
|
}
|
|
});
|
|
|
|
router.put('/:id/permissions', auth, async (req: Request, res: Response) => {
|
|
try {
|
|
if (!req.user?.permissions.isAdmin) {
|
|
return res.status(403).json({ error: 'Admin access required' });
|
|
}
|
|
const { id } = req.params;
|
|
const { permissions } = req.body;
|
|
const user = await userService.updateUserPermissions(id, permissions);
|
|
res.json(user);
|
|
} catch (error) {
|
|
res.status(500).json({ error: 'Server error' });
|
|
}
|
|
});
|
|
|
|
export default router; |