| 1234567891011121314151617181920212223242526272829303132333435 |
- const db = require('../plugin/DataBase/db')
- const Redis = require('../plugin/DataBase/Redis')
- class AccessControl {
- async checkSession(uuid, session) {
- return (await Redis.get(`userSession:${uuid}`)) === session
- }
- async isBanned(uuid) {
- const sql = 'SELECT COALESCE(is_banned, 0) AS is_banned FROM users WHERE uuid = ?'
- const rows = await db.query(sql, [uuid])
- return Number(rows[0]?.is_banned) === 1
- }
- async invalidateSession(uuid) {
- await Redis.del(`userSession:${uuid}`)
- }
- async getPermission(uuid) {
- const sql = 'SELECT permission FROM users WHERE uuid = ?'
- const rows = await db.query(sql, [uuid])
- return rows[0]?.permission || []
- }
- async checkJwAccount(uuid, username) {
- const sql = 'SELECT password FROM jw_account WHERE create_user = ? AND state = 1 AND username = ?'
- const rows = await db.query(sql, [uuid, username]);
- if (!rows || rows.length !== 1 || !rows[0].password)
- return false
- return rows[0]?.password
- }
- }
- module.exports = new AccessControl();
|