12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- const db = require('../plugin/DataBase/db');
- class AccessControl {
- async checkSession(uuid, session) {
- const sql = 'SELECT uuid, session FROM users WHERE uuid = ? AND session = ?';
- const [rows] = await db.query(sql, [uuid, session]);
- return rows.length > 0;
- }
- async getPermission(uuid) {
- const groups = [];
- const sql = 'SELECT admin, manage FROM users WHERE uuid = ?';
- const [rows] = await db.query(sql, [uuid]);
- if (rows.length === 0) return groups;
- if (rows[0].admin === 1) groups.push('admin');
- if (rows[0].manage === 1) groups.push('manage');
- return groups;
- }
- async checkUser(maintainers) {
- if (Array.isArray(maintainers) && maintainers.length > 0) {
- let uuids = [];
- let queries = maintainers.map(async (maintainer) => {
- const sql = 'SELECT uuid FROM `users_permission` WHERE name = ?';
- const [rows] = await db.query(sql, [maintainer]);
- if (!rows || rows.length === 0) {
- throw new Error(`未找到已认证用户: ${maintainer}`);
- }
- const uuid = rows[0].uuid;
- return uuid;
- });
- try {
- uuids = await Promise.all(queries);
- } catch (error) {
- throw error;
- }
- return uuids;
- }
- return [];
- }
- }
- module.exports = new AccessControl();
|