为什么我的用户验证功能不起作用?

2024-04-24 23:36:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我的应用程序的用户可以访问/static/pdf/目录中的一些pdf文件,其中包含多个站点(如station1、station2 a.s.o)的子目录。如果用户试图访问文件,该功能将在打开pdf之前检查用户是否具有打开所述站点文件的必要权限。如果用户只需单击我的应用程序中的链接,这一切都可以正常工作。但是,如果用户已经打开了pdf,现在手动输入另一个文件的路径,则该函数不会按预期进行重定向。我可以看到,在这些情况下,函数开始确认访问权限,但if b not in rights:部分不起作用。如果用户单击我的应用程序中的链接,该功能将正常工作。我做错了什么

@app.route('/static/pdf/<stationname>/<username>/<filename>')
@login_required
def filecheck(stationname, username, filename):
rights = session['rights']
access = Station.query.filter(Station.stationname==stationname)
for a in access:
    b=a.id
if b not in rights:
    flash('Access denied')
    return redirect(url_for('data'))
return None

Tags: 文件函数用户in功能应用程序权限if
1条回答
网友
1楼 · 发布于 2024-04-24 23:36:10

您正在访问上循环(对于访问中的a),并在每次迭代(b=a.id)时更改b的值。然后检查b是否不在权限范围内。只检查访问序列的最后一个元素。你就是这个意思吗

相关问题 更多 >