| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.PermissionModel = void 0;
- const database_1 = require("../config/database");
- class PermissionModel {
- static async getAllPages() {
- try {
- const query = `
- SELECT id, name, path, description, created_at, updated_at
- FROM pages
- ORDER BY id
- `;
- const result = await (0, database_1.executeQuery)(query);
- return result;
- }
- catch (error) {
- console.error('获取页面列表失败:', error);
- throw error;
- }
- }
- static async getPageById(id) {
- try {
- const query = `
- SELECT id, name, path, description, created_at, updated_at
- FROM pages
- WHERE id = ?
- `;
- const result = await (0, database_1.executeQuery)(query, [id]);
- if (result.length === 0) {
- return null;
- }
- return result[0];
- }
- catch (error) {
- console.error('根据ID获取页面失败:', error);
- throw error;
- }
- }
- static async getPageByPath(path) {
- try {
- const query = `
- SELECT id, name, path, description, created_at, updated_at
- FROM pages
- WHERE path = ?
- `;
- const result = await (0, database_1.executeQuery)(query, [path]);
- if (result.length === 0) {
- return null;
- }
- return result[0];
- }
- catch (error) {
- console.error('根据路径获取页面失败:', error);
- throw error;
- }
- }
- static async getUserPermissions(userId) {
- try {
- const query = `
- SELECT p.*
- FROM pages p
- INNER JOIN user_permissions up ON p.id = up.page_id
- WHERE up.user_id = ?
- ORDER BY p.id
- `;
- const result = await (0, database_1.executeQuery)(query, [userId]);
- return result;
- }
- catch (error) {
- console.error('获取用户权限失败:', error);
- throw error;
- }
- }
- static async checkUserPermission(userId, pagePath) {
- try {
- const query = `
- SELECT COUNT(*) as count
- FROM pages p
- INNER JOIN user_permissions up ON p.id = up.page_id
- WHERE up.user_id = ? AND p.path = ?
- `;
- const result = await (0, database_1.executeQuery)(query, [userId, pagePath]);
- return result[0].count > 0;
- }
- catch (error) {
- console.error('检查用户权限失败:', error);
- throw error;
- }
- }
- static async assignPermission(userId, pageId) {
- try {
- const query = `
- INSERT INTO user_permissions (user_id, page_id)
- VALUES (?, ?)
- ON DUPLICATE KEY UPDATE id = id
- `;
- const result = await (0, database_1.executeQuery)(query, [userId, pageId]);
- const permission = await this.getUserPermissionById(result.insertId);
- if (!permission) {
- throw new Error('分配权限失败,无法获取创建的权限信息');
- }
- return permission;
- }
- catch (error) {
- console.error('分配权限失败:', error);
- throw error;
- }
- }
- static async assignPermissions(userId, pageIds) {
- try {
- await this.removeAllUserPermissions(userId);
- if (pageIds.length > 0) {
- const values = pageIds.map(pageId => `('${userId}', ${pageId})`).join(', ');
- const query = `
- INSERT INTO user_permissions (user_id, page_id)
- VALUES ${values}
- `;
- await (0, database_1.executeQuery)(query);
- }
- }
- catch (error) {
- console.error('批量分配权限失败:', error);
- throw error;
- }
- }
- static async removePermission(userId, pageId) {
- try {
- const query = `
- DELETE FROM user_permissions
- WHERE user_id = ? AND page_id = ?
- `;
- const result = await (0, database_1.executeQuery)(query, [userId, pageId]);
- return result.affectedRows > 0;
- }
- catch (error) {
- console.error('移除用户权限失败:', error);
- throw error;
- }
- }
- static async removeAllUserPermissions(userId) {
- try {
- const query = `
- DELETE FROM user_permissions
- WHERE user_id = ?
- `;
- const result = await (0, database_1.executeQuery)(query, [userId]);
- return result.affectedRows > 0;
- }
- catch (error) {
- console.error('移除用户所有权限失败:', error);
- throw error;
- }
- }
- static async getUserPermissionById(id) {
- try {
- const query = `
- SELECT id, user_id, page_id, created_at
- FROM user_permissions
- WHERE id = ?
- `;
- const result = await (0, database_1.executeQuery)(query, [id]);
- if (result.length === 0) {
- return null;
- }
- return result[0];
- }
- catch (error) {
- console.error('根据ID获取用户权限失败:', error);
- throw error;
- }
- }
- }
- exports.PermissionModel = PermissionModel;
- //# sourceMappingURL=permission.js.map
|