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

时间:2019-03-18 14:43:20

标签: python flask

我的应用程序的用户可以访问目录/ static / pdf /中的一些pdf文件,这些文件带有子目录,如station1,station2a.s.o。如果用户尝试访问文件,则该功能会在打开pdf之前检查用户是否具有打开该工作站文件的必要权限。如果用户只是单击我的应用程序中的链接,则所有这些工作均与预期的一样。但是,如果用户已经打开了pdf文件,现在又手动输入了另一个文件的路径,则该功能不会按预期进行重定向。在这些情况下,我可以看到该函数开始确认访问权限,但是if b不在right:部分中不起作用。如果用户单击我的应用程序中的链接,则该功能可以正常使用。我在做什么错了?

@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

1 个答案:

答案 0 :(得分:0)

您正在遍历访问(对于a in访问),并且每次迭代都要更改b的值(b = a.id)。之后,您检查b是否没有权利。您只需要检查访问序列的最后一个元素。那是你的意思吗?