nordabiz/utils
Maciej Pienczyn 4181a2e760 refactor: Migrate access control from is_admin to role-based system
Replace ~170 manual `if not current_user.is_admin` checks with:
- @role_required(SystemRole.ADMIN) for user management, security, ZOPK
- @role_required(SystemRole.OFFICE_MANAGER) for content management
- current_user.can_access_admin_panel() for admin UI access
- current_user.can_moderate_forum() for forum moderation
- current_user.can_edit_company(id) for company permissions

Add @office_manager_required decorator shortcut.
Add SQL migration to sync existing users' role field.

Role hierarchy: UNAFFILIATED(10) < MEMBER(20) < EMPLOYEE(30) < MANAGER(40) < OFFICE_MANAGER(50) < ADMIN(100)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 21:05:22 +01:00
..
__init__.py feat(notifications): Add notifications for releases and announcements 2026-01-27 14:22:44 +01:00
analytics.py refactor(phase1): Extract blueprints for reports, contacts, classifieds, calendar 2026-01-27 10:10:45 +01:00
context_processors.py refactor(phase1): Extract blueprints for reports, contacts, classifieds, calendar 2026-01-27 10:10:45 +01:00
decorators.py refactor: Migrate access control from is_admin to role-based system 2026-02-01 21:05:22 +01:00
error_handlers.py refactor(phase1): Extract blueprints for reports, contacts, classifieds, calendar 2026-01-27 10:10:45 +01:00
helpers.py refactor(phase1): Extract blueprints for reports, contacts, classifieds, calendar 2026-01-27 10:10:45 +01:00
markdown.py feat: Add forum search, markdown, user stats, and admin bulk actions 2026-01-31 19:11:29 +01:00
middleware.py refactor(phase1): Extract blueprints for reports, contacts, classifieds, calendar 2026-01-27 10:10:45 +01:00
notifications.py feat: Add forum search, markdown, user stats, and admin bulk actions 2026-01-31 19:11:29 +01:00
permissions.py feat: Add hierarchical role system with delegated permissions 2026-02-01 06:42:39 +01:00