使用关联表检查用户权限的最佳方法是什么?

时间:2016-07-17 15:01:07

标签: python flask permissions sqlalchemy

对于我的webapp,我使用的是带有items的数据库表,一个带有users的表和一个关联表user_itemsuser_items表确定哪个用户应该有权访问哪个项目。它有两列useritem,每个列与各个表的外键关系。

该应用程序具有列出,读取,编辑,移动项目的功能。为这些功能分配单独的路线,例如@route('/item/<int:item_id>/edit')

目标

我的目标是仅限制对指定用户的项目访问权限(他们使用flask-user登录,并且他们的用户ID在会话变量中)。

我考虑的解决方案

  • 我不想在函数本身中检查他们的权限,因为这需要在每个函数中添加代码并忘记该代码一次将授予所有用户访问权限。

  • 我正在考虑通过@before_request装饰器执行此操作,但这不会让我访问路径中的item_id集,我将无法检查权限。

最好和最安全的方法是什么?是否可以在数据库层上实现它?我正在使用SQLAlchemy,有没有办法直接检查模型中的权限?

0 个答案:

没有答案