佛山法律风险
Go to file
Codex Agent a6fe2f4370 feat: 登录权限跳转安全优化与权限控制系统完善
## 主要修改

### 🔒 安全优化 (auth.py)
- 统一所有用户登录跳转路径,防止权限暴露
- 所有用户默认跳转到 /fs-ai-asistant/api/workflow/lawrisk/db_admin
- 移除基于权限等级的多路径跳转逻辑
- 移除调试字段 TEST_MARKER

### 🛡️ 权限控制系统 (licensing_repo.py)
- 实现基于用户等级的权限过滤
- 超级管理员(grade=100)和市级管理员(grade>=90): 查看所有区域数据
- 区级管理员(grade<90): 只能查看自己区域数据
- 添加详细的权限拒绝日志记录

### 👥 用户管理增强 (auth_service.py, v2.py)
- 添加 delete_user_account 函数
- 实现用户删除API端点
- 防止删除最后一个管理员账号的安全检查

### 🎨 UI优化 (super_admin.html)
- 更新界面文案: "新的服务部门" → "绑定服务部门"

## 测试验证
-  所有用户统一跳转验证通过
-  权限控制逻辑验证通过
-  用户删除功能验证通过
-  自定义next参数支持正常

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 15:45:30 +08:00
.claude refactor: 重新规划项目结构为标准Python包 2025-10-29 15:31:01 +08:00
analysis feat: checkpoint system comprehensive enhancement 2025-10-31 17:33:12 +08:00
data feat: checkpoint system comprehensive enhancement 2025-10-31 17:33:12 +08:00
docs feat: add super admin console 2025-11-14 15:46:18 +08:00
lawrisk feat: 登录权限跳转安全优化与权限控制系统完善 2025-11-18 15:45:30 +08:00
static feat: 登录权限跳转安全优化与权限控制系统完善 2025-11-18 15:45:30 +08:00
tests fix: honor permit overrides and bindings 2025-11-14 11:43:43 +08:00
.gitignore chore: initial commit 2025-10-22 20:00:32 +08:00
CHECKPOINT_LOGGING_GUIDE.md feat: add authentication system and service department tree structure 2025-11-17 15:07:14 +08:00
CHECKPOINT_PERFORMANCE_OPTIMIZATION.md feat: checkpoint system comprehensive enhancement 2025-10-31 17:33:12 +08:00
CHECKPOINT_SECURITY_FIX_SUMMARY.md feat: checkpoint system comprehensive enhancement 2025-10-31 17:33:12 +08:00
COLOR_SCHEME_UPDATE.md feat: improve org chart visual design with soft color scheme 2025-11-17 14:49:23 +08:00
GRADE_AUTO_CALC.md feat: 组织架构权限等级自动管理系统 2025-11-18 09:39:18 +08:00
ORG_CHART_VISUAL_IMPROVEMENTS.md feat: improve org chart visual design with soft color scheme 2025-11-17 14:49:23 +08:00
PATCH_CHECKPOINT_SECURITY.md feat: checkpoint system comprehensive enhancement 2025-10-31 17:33:12 +08:00
README.md feat: add authentication system and service department tree structure 2025-11-17 15:07:14 +08:00
REGION_NAME_FIX.md fix: hide redundant region_name tag for district-level departments 2025-11-17 14:55:04 +08:00
app.py feat: add authentication system and service department tree structure 2025-11-17 15:07:14 +08:00
requirements.txt feat: add authentication system and service department tree structure 2025-11-17 15:07:14 +08:00
test_org_chart_soft.html feat: improve org chart visual design with soft color scheme 2025-11-17 14:49:23 +08:00
test_region_name_fix.py fix: hide redundant region_name tag for district-level departments 2025-11-17 14:55:04 +08:00

README.md

LawRisk Backend

智能法律风险检索系统 - Flask后端服务

项目简介

LawRisk是一个基于Flask的Python后端服务为政务许可和风险提示提供智能检索功能。使用向量嵌入和LLM匹配技术帮助用户根据自然语言查询找到相关的许可证、执照和法律风险信息。

技术栈

  • 框架: Flask 2.3+
  • 数据库: PostgreSQL (pg8000驱动)
  • AI服务: 阿里云DashScope
    • 嵌入模型: text-embedding-v4
    • 对话模型: qwen-plus-latest
  • 开发工具: Black, Ruff, Pytest

项目结构

市监局-lawRisk-backend/
├── app.py                      # Flask应用入口
├── requirements.txt            # Python依赖
├── .env                        # 环境配置
│
├── lawrisk/                    # 主应用包
│   ├── __init__.py
│   ├── api/                    # API路由层
│   │   ├── v1.py              # V1 API (legacy)
│   │   └── v2.py              # V2 API (current)
│   ├── services/               # 业务逻辑层
│   │   ├── lawrisk_service.py  # 核心检索服务
│   │   ├── lawrisk_v2_service.py  # V2增强服务
│   │   └── licensing_repo.py   # 数据仓库
│   ├── middleware/             # 中间件
│   │   └── smart_cors_middleware.py
│   └── utils/                  # 工具模块
│       ├── env_loader.py
│       ├── export_risk_json.py
│       └── ingest_lawrisk.py
│
├── static/                     # 静态资源
│   └── v2_tester.html         # API测试页面
│
├── tests/                      # 测试套件 (计划中)
│   └── __init__.py
│
├── data/                       # 数据文件
│   ├── risk_tables_export.json
│   └── licensing_risks_dump.sql
│
└── docs/                       # 项目文档
    ├── PRD.md
    ├── API.md
    ├── V2_API文档.md
    ├── AGENTS.md
    ├── DB_GUIDE.md
    └── CLAUDE.md

快速开始

1. 安装依赖

pip install -r requirements.txt

2. 配置环境变量

复制.env文件并配置数据库和API密钥

# 数据库配置
PG_HOST=your_db_host
PG_PORT=5432
PG_USER=postgres
PG_PASSWORD=your_password
PG_DATABASE=fs_law_risk

LIC_PG_HOST=your_db_host
LIC_PG_DATABASE=licensing_risks

# DashScope API
DASHSCOPE_API_KEY=your_api_key
DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1

3. 运行应用

python app.py

应用将在 http://localhost:8000 启动

4. 测试API

访问 http://localhost:8000/static/v2_tester.html 进行API测试

或使用curl

curl http://localhost:8000/healthz
curl -X POST "http://localhost:8000/fs-ai-asistant/api/workflow/lawrisk/v2" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "query=我要办一家电影院&debug=1"

身份认证

  • 设置 FLASK_SECRET_KEY 保护会话 Cookie同时通过 LAWRISK_ADMIN_USERNAMELAWRISK_ADMIN_PASSWORD 注入首个管理员账号(可选 LAWRISK_ADMIN_ROLE, LAWRISK_ADMIN_GRADELAWRISK_ADMIN_DISPLAY_NAME)。
  • 首次启动会自动创建 auth_users用于存储用户名、哈希密码、角色role和级别grade
  • 登录页位于 http://localhost:8000/fs-ai-asistant/lawrisk/login,表单提交至 /auth/login;成功后会在会话中写入当前用户信息。
  • API 客户端可以调用 /auth/me 获取当前登录信息,调用 /auth/logout 注销。

API文档

  • V1 API: 查看 docs/API.md
  • V2 API: 查看 docs/V2_API文档.md
  • 数据库指南: 查看 docs/DB_GUIDE.md

开发

代码格式化

black .
ruff .

运行测试 (计划中)

pytest

许可证

内部使用