mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-09-30 11:12:35 +02:00
Implement a full permissions system replacing simple admin/user roles: Backend: - Add Group model with many-to-many user relationship - Add 50+ granular permissions (resource:action pattern) - Create default groups: Administrators, Operators, Viewers - Add permission-checking dependencies for route protection - Add groups API endpoints (CRUD, user assignment) - Add change password endpoint for users - Update backup/restore to include groups - Migrate existing users to groups on startup Frontend: - Add GroupsPage for managing groups and permissions - Add permission helpers to AuthContext (hasPermission, hasAnyPermission) - Add PermissionRoute component for protected routes - Disable buttons/features based on permissions (with tooltips) - Add change password modal in sidebar for all users - Add forgot password info modal on login page - Show user groups in UsersPage with group assignment Testing: - Add integration tests for groups API - Add tests for user-group assignments - Add tests for change password endpoint - Seed default groups in test fixtures Closes #28 #161
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
from backend.app.models.ams_history import AMSSensorHistory
|
|
from backend.app.models.api_key import APIKey
|
|
from backend.app.models.archive import PrintArchive
|
|
from backend.app.models.filament import Filament
|
|
from backend.app.models.github_backup import GitHubBackupConfig, GitHubBackupLog
|
|
from backend.app.models.group import Group, user_groups
|
|
from backend.app.models.kprofile_note import KProfileNote
|
|
from backend.app.models.library import LibraryFile, LibraryFolder
|
|
from backend.app.models.maintenance import MaintenanceHistory, MaintenanceType, PrinterMaintenance
|
|
from backend.app.models.notification import NotificationLog
|
|
from backend.app.models.notification_template import NotificationTemplate
|
|
from backend.app.models.pending_upload import PendingUpload
|
|
from backend.app.models.printer import Printer
|
|
from backend.app.models.project import Project
|
|
from backend.app.models.settings import Settings
|
|
from backend.app.models.smart_plug import SmartPlug
|
|
from backend.app.models.user import User
|
|
|
|
__all__ = [
|
|
"Printer",
|
|
"PrintArchive",
|
|
"Filament",
|
|
"Settings",
|
|
"SmartPlug",
|
|
"MaintenanceType",
|
|
"PrinterMaintenance",
|
|
"MaintenanceHistory",
|
|
"KProfileNote",
|
|
"NotificationTemplate",
|
|
"NotificationLog",
|
|
"Project",
|
|
"APIKey",
|
|
"AMSSensorHistory",
|
|
"PendingUpload",
|
|
"LibraryFolder",
|
|
"LibraryFile",
|
|
"User",
|
|
"Group",
|
|
"user_groups",
|
|
"GitHubBackupConfig",
|
|
"GitHubBackupLog",
|
|
]
|