Update frontend login page.jsx และ backend
This commit is contained in:
		| @@ -1,28 +1,36 @@ | ||||
| // src/routes/views.js (ESM) | ||||
| import { Router } from 'express'; | ||||
| import sql from '../db/index.js'; | ||||
| import { requirePerm } from '../middleware/requirePerm.js'; | ||||
| import PERM from '../config/permissions.js'; | ||||
| // FILE: src/routes/views.js | ||||
| // Views routes | ||||
| // - GET /api/views to list all views | ||||
| // - GET /api/views/:view_name to get view definition | ||||
| // - Requires appropriate permissions via requirePerm middleware | ||||
|  | ||||
| import { Router } from "express"; | ||||
| import sql from "../db/index.js"; | ||||
| import { requirePerm } from "../middleware/requirePerm.js"; | ||||
| import PERM from "../config/permissions.js"; | ||||
|  | ||||
| const r = Router(); | ||||
| const DB_NAME = process.env.DB_NAME || 'dms_db'; | ||||
| const DB_NAME = process.env.DB_NAME || "dms_db"; | ||||
|  | ||||
| // LIST views | ||||
| r.get('/', | ||||
|   requirePerm(PERM.viewdef.read, { scope: 'global' }), | ||||
| r.get( | ||||
|   "/", | ||||
|   requirePerm(PERM.viewdef.read, { scope: "global" }), | ||||
|   async (req, res) => { | ||||
|     const [rows] = await sql.query( | ||||
|       `SELECT TABLE_SCHEMA AS db, TABLE_NAME AS view_name | ||||
|        FROM information_schema.VIEWS | ||||
|        WHERE TABLE_SCHEMA = ? ORDER BY TABLE_NAME`, [DB_NAME] | ||||
|        WHERE TABLE_SCHEMA = ? ORDER BY TABLE_NAME`, | ||||
|       [DB_NAME] | ||||
|     ); | ||||
|     res.json(rows); | ||||
|   } | ||||
| ); | ||||
|  | ||||
| // GET view definition | ||||
| r.get('/:view_name', | ||||
|   requirePerm(PERM.viewdef.read, { scope: 'global' }), | ||||
| r.get( | ||||
|   "/:view_name", | ||||
|   requirePerm(PERM.viewdef.read, { scope: "global" }), | ||||
|   async (req, res) => { | ||||
|     const viewName = req.params.view_name; | ||||
|     const [[row]] = await sql.query( | ||||
| @@ -31,7 +39,7 @@ r.get('/:view_name', | ||||
|        WHERE TABLE_SCHEMA=? AND TABLE_NAME=?`, | ||||
|       [DB_NAME, viewName] | ||||
|     ); | ||||
|     if (!row) return res.status(404).json({ error: 'Not found' }); | ||||
|     if (!row) return res.status(404).json({ error: "Not found" }); | ||||
|     res.json({ view: viewName, definition: row.definition }); | ||||
|   } | ||||
| ); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 admin
					admin