Skip to content

Commit 68175f9

Browse files
committed
update:限制管理员上传,最长天数配置
1 parent 0caabe3 commit 68175f9

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

depends.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,13 @@
66
import settings
77

88

9-
async def admin_required(pwd: Union[str, None] = Header(default=None)):
10-
if not pwd or pwd != settings.ADMIN_PASSWORD:
11-
raise HTTPException(status_code=401, detail="密码错误")
9+
async def admin_required(pwd: Union[str, None] = Header(default=None), request: Request = None):
10+
if 'share' in request.url.path:
11+
if pwd != settings.ADMIN_PASSWORD and not settings.ENABLE_UPLOAD:
12+
raise HTTPException(status_code=403, detail='本站上传功能已关闭,仅管理员可用')
13+
else:
14+
if not pwd or pwd != settings.ADMIN_PASSWORD:
15+
raise HTTPException(status_code=401, detail="密码错误,请重新登录")
1216

1317

1418
class IPRateLimit:

main.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,16 +121,14 @@ async def index(code: str, ip: str = Depends(error_ip_limit), s: AsyncSession =
121121
}
122122

123123

124-
@app.post('/share')
125-
async def share(background_tasks: BackgroundTasks, pwd: str = Header(default=None), text: str = Form(default=None),
124+
@app.post('/share', dependencies=[Depends(admin_required)], description='分享文件')
125+
async def share(background_tasks: BackgroundTasks, text: str = Form(default=None),
126126
style: str = Form(default='2'), value: int = Form(default=1), file: UploadFile = File(default=None),
127127
ip: str = Depends(upload_ip_limit), s: AsyncSession = Depends(get_session)):
128-
if not settings.ENABLE_UPLOAD and pwd != settings.ADMIN_PASSWORD:
129-
raise HTTPException(status_code=403, detail="上传功能已关闭")
130128
code = await get_code(s)
131129
if style == '2':
132-
if value > 7:
133-
raise HTTPException(status_code=400, detail="最大有效天数为7天")
130+
if value > settings.MAX_DAYS:
131+
raise HTTPException(status_code=400, detail=f"最大有效天数为{settings.MAX_DAYS}")
134132
exp_time = datetime.datetime.now() + datetime.timedelta(days=value)
135133
exp_count = -1
136134
elif style == '1':

settings.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
STATIC_URL = config('STATIC_URL', cast=str, default="/static")
1818
# 开启上传
1919
ENABLE_UPLOAD = config('ENABLE_UPLOAD', cast=bool, default=False)
20+
# 最长天数
21+
MAX_DAYS = config('MAX_DAYS', cast=int, default=7)
2022
# 错误次数
2123
ERROR_COUNT = config('ERROR_COUNT', cast=int, default=5)
2224
# 错误限制分钟数

0 commit comments

Comments
 (0)