mira-app-server
Version:
Mira Server - standalone server application using mira-app-core
42 lines • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SettingsRouter = void 0;
const express_1 = require("express");
class SettingsRouter {
constructor(backend, authRouter) {
this.backend = backend;
this.authRouter = authRouter;
this.router = (0, express_1.Router)();
this.setupRoutes();
}
setupRoutes() {
// 获取服务器设置
this.router.get('/', (req, res) => {
const settings = this.backend.settingsManager.getSettings();
res.json({ code: 0, data: settings });
});
// 更新服务器设置(需要 admin 权限)
this.router.put('/', this.authRouter.authMiddleware(), async (req, res) => {
const user = req.user;
if (!user || (user.role !== 'super' && user.role !== 'admin')) {
return res.status(403).json({ code: 403, message: 'Admin access required' });
}
try {
const { authRequired, allowRegistration } = req.body;
const updated = await this.backend.settingsManager.updateSettings({
...(authRequired !== undefined && { authRequired: !!authRequired }),
...(allowRegistration !== undefined && { allowRegistration: !!allowRegistration }),
});
res.json({ code: 0, data: updated });
}
catch (error) {
res.status(500).json({ code: 500, message: 'Failed to update settings' });
}
});
}
getRouter() {
return this.router;
}
}
exports.SettingsRouter = SettingsRouter;
//# sourceMappingURL=SettingsRouter.js.map