fix: polls /active route order, features redundant auth check

This commit is contained in:
2026-07-14 03:03:56 +08:00
parent ee2f33c61f
commit 3d7393817c
2 changed files with 7 additions and 7 deletions

View File

@@ -4,12 +4,6 @@ const { authenticate, requireRole } = require('../middleware/auth');
const router = express.Router(); const router = express.Router();
router.get('/:id', authenticate, requireRole('owner'), async (req, res) => {
const p = await getRow('SELECT * FROM polls WHERE id = ?', [req.params.id]);
if (!p) return res.status(404).json({ error: '不存在' });
res.json(p);
});
router.get('/active', authenticate, async (req, res) => { router.get('/active', authenticate, async (req, res) => {
const polls = await query('SELECT id, title, description, active, created_at FROM polls WHERE active = 1 ORDER BY created_at DESC'); const polls = await query('SELECT id, title, description, active, created_at FROM polls WHERE active = 1 ORDER BY created_at DESC');
for (const p of polls) { for (const p of polls) {
@@ -29,6 +23,12 @@ router.get('/active', authenticate, async (req, res) => {
res.json(polls); res.json(polls);
}); });
router.get('/:id', authenticate, requireRole('owner'), async (req, res) => {
const p = await getRow('SELECT * FROM polls WHERE id = ?', [req.params.id]);
if (!p) return res.status(404).json({ error: '不存在' });
res.json(p);
});
router.post('/', authenticate, requireRole('owner'), async (req, res) => { router.post('/', authenticate, requireRole('owner'), async (req, res) => {
const { title, description, options } = req.body; const { title, description, options } = req.body;
if (!title || !options || !Array.isArray(options) || options.length < 2) return res.status(400).json({ error: '标题和至少2个选项为必填' }); if (!title || !options || !Array.isArray(options) || options.length < 2) return res.status(400).json({ error: '标题和至少2个选项为必填' });

View File

@@ -16,7 +16,7 @@ const FeaturesPage = {
ct.innerHTML = items.length === 0 ct.innerHTML = items.length === 0
? '<div class="empty"><i class="fas fa-lightbulb"></i><p>暂无更新项目</p></div>' ? '<div class="empty"><i class="fas fa-lightbulb"></i><p>暂无更新项目</p></div>'
: items.map(i => this.renderItem(i)).join(''); : items.map(i => this.renderItem(i)).join('');
for (const i of items) if (Auth.logged() || Auth.logged()) this.bindVote(i); for (const i of items) if (Auth.logged()) this.bindVote(i);
} catch (e) { ct.innerHTML = `<div class="alert alert-e">${e.message}</div>`; } } catch (e) { ct.innerHTML = `<div class="alert alert-e">${e.message}</div>`; }
}, },