diff --git a/inventory-backend/app/extensions.py b/inventory-backend/app/extensions.py index 35dc3ac..c2a9440 100644 --- a/inventory-backend/app/extensions.py +++ b/inventory-backend/app/extensions.py @@ -46,4 +46,14 @@ def init_extensions(app): redis_client.ping() app.logger.info("✅ Redis connected successfully") except Exception as e: - app.logger.warning(f"⚠️ Redis connection failed: {e}, single-device login will be disabled") \ No newline at end of file + app.logger.warning(f"⚠️ Redis connection failed: {e}, single-device login will be disabled") + + # ★ 注册 SQLAlchemy 审计监听器 + # 必须在 db.init_app 之后调用,确保所有模型已映射 + try: + from app.core.audit_listener import register_audit_listeners + with app.app_context(): + count = register_audit_listeners(db) + app.logger.info(f"✅ 审计监听器注册成功,共绑定 {count} 个模型") + except Exception as e: + app.logger.error(f"⚠️ 审计监听器注册失败: {e}") \ No newline at end of file diff --git a/inventory-web/src/views/system/PermissionConfig.vue b/inventory-web/src/views/system/PermissionConfig.vue index c34271c..d3c015d 100644 --- a/inventory-web/src/views/system/PermissionConfig.vue +++ b/inventory-web/src/views/system/PermissionConfig.vue @@ -62,6 +62,28 @@ 当前配置: {{ getRoleLabel(currentRole) }} + +
+ 从其他角色复制权限: + + + + 选择后将覆盖当前未保存的勾选状态 +
+ @@ -153,8 +181,8 @@