UNPKG

mcp-quiz-server

Version:

🧠 AI-Powered Quiz Management via Model Context Protocol (MCP) - Create, manage, and take quizzes directly from VS Code, Claude, and other AI agents.

49 lines (48 loc) • 1.87 kB
"use strict"; /** * @fileoverview Simple Permission Service Implementation * @version 1.0.0 * @since 2025-07-29 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.SimplePermissionService = void 0; class SimplePermissionService { constructor(config = {}) { this.config = { defaultPermissions: ['quiz:read'], adminUsers: [], ...config, }; } async hasPermission(userId, permission) { const userPermissions = await this.getUserPermissions(userId); return userPermissions.includes(permission); } async hasAnyPermission(userId, permissions) { const userPermissions = await this.getUserPermissions(userId); return permissions.some(permission => userPermissions.includes(permission)); } async hasAllPermissions(userId, permissions) { const userPermissions = await this.getUserPermissions(userId); return permissions.every(permission => userPermissions.includes(permission)); } async getUserPermissions(userId) { // Check if user is admin if (this.config.adminUsers.includes(userId)) { return ['*']; // Admin has all permissions } // Return default permissions for now // In a real implementation, this would query a database or external service return [...this.config.defaultPermissions]; } async canAccessQuiz(quizId, userId) { // Simple implementation - allow access for now // In a real implementation, this would check quiz-specific permissions if (!userId) { return true; // Allow anonymous access for public quizzes } const hasReadPermission = await this.hasPermission(userId, 'quiz:read'); return hasReadPermission; } } exports.SimplePermissionService = SimplePermissionService;