System Settings: - Add SystemSettings.vue with Zabbix integration, SMTP/email config, SAML SSO settings - Add Setting model with key-value storage and typed values - Add settings API with caching Audit Logging: - Add AuditLog model tracking user, IP, action, entity changes - Add comprehensive audit logging to all CRUD operations: - Machines, Computers, Equipment, Network devices, VLANs, Subnets - Printers, USB devices (including checkout/checkin) - Applications, Settings, Users/Roles - Track old/new values for all field changes - Mask sensitive values (passwords, tokens) in logs User Management: - Add UsersList.vue with full user CRUD - Add Role management with granular permissions - Add 41 predefined permissions across 10 categories - Add users API with roles and permissions endpoints Reports: - Add TonerReport.vue for printer supply monitoring Dark Mode Fixes: - Fix map position section in PCForm, PrinterForm - Fix alert-warning in KnowledgeBaseDetail - All components now use CSS variables for theming CLI Commands: - Add flask seed permissions - Add flask seed settings Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
29 lines
709 B
Python
29 lines
709 B
Python
"""Flask extensions initialization."""
|
|
|
|
from flask_sqlalchemy import SQLAlchemy
|
|
from flask_migrate import Migrate
|
|
from flask_jwt_extended import JWTManager
|
|
from flask_cors import CORS
|
|
from flask_marshmallow import Marshmallow
|
|
from flask_caching import Cache
|
|
|
|
# Initialize extensions without app
|
|
db = SQLAlchemy()
|
|
migrate = Migrate()
|
|
jwt = JWTManager()
|
|
cors = CORS()
|
|
ma = Marshmallow()
|
|
cache = Cache()
|
|
|
|
|
|
def init_extensions(app):
|
|
"""Initialize all Flask extensions with app."""
|
|
db.init_app(app)
|
|
migrate.init_app(app, db)
|
|
jwt.init_app(app)
|
|
cors.init_app(app, resources={
|
|
r"/api/*": {"origins": app.config.get('CORS_ORIGINS', '*')}
|
|
})
|
|
ma.init_app(app)
|
|
cache.init_app(app)
|