web2py:限制用户仅能访问由该用户创建的行

3

我希望限制用户只能访问他们自己创建的数据库条目。是否有任何标准的web2py方法可以实现这一点?auth.requires_permission看起来不错,但它似乎需要一个硬编码的行ID,这并不能解决我的问题。

5个回答

1

这不应该由web2py处理。您的数据库应该处理用户权限,因此您需要查看使用的db后端的文档。

此外,如果每个人都有单独的用户帐户连接到单个数据库用户,则无法控制权限,除非在数据库周围添加大量独立的“安全”代码。例如,数据库中的一个表会查看web2py提供的字段以确定“用户”,然后相应地设置手动编码的特权。数据库有用户就是为了这个原因。


Django具有基于对象/行的访问控制。 - frage

0

0

0
在数据库中添加一个“created_by”字段。插入记录时插入用户ID。在选择时使用此字段进行过滤。

0

使用删除回调函数,如果用户没有创建该行,则返回True。

db.some_table._bedfore_delete = lambda query: False if db.some_table.created_by == auth.user_id else True

一定很希望在这上面看到一个类似Django的系统。 - frage

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接