权限配置说明.md•5.44 kB
# 🔐 权限配置说明
## 📋 简单配置方式
**用户只需要配置手机号和数据集ID,系统自动处理匹配逻辑!**
### 🎯 JSON配置文件(推荐)
在 `config/permissions.json` 文件中配置:
```json
{
"special_users": [
"13851602833",
"15850727400",
"18352695421"
],
"restricted_datasets": [
"6846eefcf7cf3ed0262f1374",
"6846eeebf7cf3ed0262f0bb4A",
"6846e10ef7cf3ed0262bde87"
],
"description": "权限配置文件 - 只需配置手机号和受限数据集ID",
"last_updated": "2024-12-19"
}
```
### 🔧 环境变量(兼容模式)
在项目根目录创建 `.env` 文件:
```bash
# 特殊用户手机号(逗号分隔)
SPECIAL_ACCESS_USERS=13851602833,15850727400,18352695421
# 受限数据集ID(逗号分隔)
RESTRICTED_DATASETS=6846eefcf7cf3ed0262f1374,6846eeebf7cf3ed0262f0bb4A,6846e10ef7cf3ed0262bde87
```
## 🎯 权限体系说明
### 用户权限分级
| 用户类型 | 配置方式 | 权限范围 | 访问规则 |
|---------|---------|---------|----------|
| **特殊用户** | 手机号列表 | 特殊权限 | 访问所有数据集(包括受限数据集) |
| **普通用户** | 其他用户 | 基础权限 | 仅访问非受限数据集 |
### 配置优先级
```
配置读取优先级:
1. JSON配置文件 (config/permissions.json) ✨ 推荐
2. 环境变量 (SPECIAL_ACCESS_USERS) 🔄 兼容
```
### 自动正则匹配
系统会自动将手机号列表转换为正则表达式:
```
配置: ["13851602833", "15850727400", "18352695421"]
↓ 系统自动生成
正则: ^(?:13851602833|15850727400|18352695421)$
```
## 🛠️ 配置示例
### 完整配置示例
```json
{
"special_users": [
"13851602833",
"15850727400",
"18352695421",
"13951767380",
"18951710731",
"18600987960",
"15161464654",
"13621589059",
"15062213991",
"18750942676",
"13813000386",
"13819125221",
"15387192400",
"18551855028",
"13770923223",
"13951926699",
"18758823239",
"18662718877",
"15208306914",
"13354985241",
"15826088288",
"18631195052",
"13996040610",
"18709916307",
"18603650535",
"18905319679",
"18706719662",
"18751995872",
"18652952736",
"17629004059",
"18262608930",
"15151807690",
"18551855658",
"18021540490",
"13951611424",
"17326101105",
"17558859897"
],
"restricted_datasets": [
"6846eefcf7cf3ed0262f1374",
"6846eeebf7cf3ed0262f0bb4A",
"6846e10ef7cf3ed0262bde87"
],
"description": "权限配置文件 - 只需配置手机号和受限数据集ID",
"last_updated": "2024-12-19"
}
```
### 环境变量配置示例
```bash
# 特殊用户手机号(37个)
SPECIAL_ACCESS_USERS=13851602833,15850727400,18352695421,13951767380,18951710731,18600987960,15161464654,13621589059,15062213991,18750942676,13813000386,13819125221,15387192400,18551855028,13770923223,13951926699,18758823239,18662718877,15208306914,13354985241,15826088288,18631195052,13996040610,18709916307,18603650535,18905319679,18706719662,18751995872,18652952736,17629004059,18262608930,15151807690,18551855658,18021540490,13951611424,17326101105,17558859897
# 受限数据集
RESTRICTED_DATASETS=6846eefcf7cf3ed0262f1374,6846eeebf7cf3ed0262f0bb4A,6846e10ef7cf3ed0262bde87
```
## 🔍 权限验证流程
1. **配置加载**
```python
# 从JSON或环境变量加载手机号列表
special_users = ["13851602833", "15850727400", ...]
```
2. **自动生成正则**
```python
# 系统自动拼接正则表达式
phone_regex = "^(?:13851602833|15850727400|...)$"
```
3. **用户匹配**
```python
# 使用正则表达式匹配用户ID
def is_special_user(userid):
return re.match(phone_regex, userid)
```
## 📝 配置注意事项
### ✅ 正确配置
- **只需配置手机号**,无需了解正则表达式
- **只需配置数据集ID**,系统自动处理权限
- JSON文件使用UTF-8编码
- 手机号使用字符串格式
### ❌ 常见错误
- 手机号使用数字格式(应该用字符串)
- JSON文件格式错误
- 文件编码问题
### 🔧 配置验证
启动服务器时会在日志中显示当前权限配置:
```
🔐 权限配置:
特殊用户: 37 个手机号
受限数据集: 6846eefcf7cf3ed0262f1374, 6846eeebf7cf3ed0262f0bb4A, 6846e10ef7cf3ed0262bde87
```
## 🚀 快速开始
### 使用JSON配置文件(推荐)
1. **创建配置目录**
```bash
mkdir -p config
```
2. **创建权限配置文件**
```bash
# 创建 config/permissions.json
cat > config/permissions.json << 'EOF'
{
"special_users": [
"13851602833",
"15850727400"
],
"restricted_datasets": [
"6846eefcf7cf3ed0262f1374"
]
}
EOF
```
3. **启动服务验证**
```bash
python main.py
```
### 添加新用户
```bash
# 编辑JSON文件,在special_users数组中添加新手机号
nano config/permissions.json
```
### 添加受限数据集
```bash
# 编辑JSON文件,在restricted_datasets数组中添加新数据集ID
nano config/permissions.json
```
## 💡 设计优势
- **用户友好**:只需配置手机号和数据集ID
- **自动处理**:系统自动生成匹配逻辑
- **高效匹配**:单次正则匹配,性能优秀
- **易于维护**:配置简单,修改方便
---
*推荐配置方式:`config/permissions.json` 文件*