我的应用程序的用户可以访问目录/ 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
答案 0 :(得分:0)
您正在遍历访问(对于a in访问),并且每次迭代都要更改b的值(b = a.id)。之后,您检查b是否没有权利。您只需要检查访问序列的最后一个元素。那是你的意思吗?