web2py:限制用户只能看到自己创建的行

3 投票
5 回答
1433 浏览
提问于 2025-04-16 16:28

我想限制用户只能访问他们自己创建的数据库条目。有没有什么标准的方法可以在web2py中做到这一点?我看到auth.requires_permission这个方法看起来不错,但它似乎需要一个固定的行ID,这并不能解决我的问题。

5 个回答

0

在数据库里添加一个'created_by'字段。当你插入记录的时候,把用户的ID也插进去。这样在选择数据的时候就可以用这个字段来筛选了。

0

你可以通过CRUD来实现这个功能。

http://web2py.com/book/default/chapter/08#Authorization-and-CRUD

你可以为每一条记录定义权限,只需要写一点代码,就能在创建记录时把默认权限设置为用户组的ID。

1

这个问题不应该由web2py来处理。你的数据库应该负责管理用户权限,所以你需要查看你使用的数据库后端的文档。

另外,如果每个人在前端都有一个单独的用户账户,而这些账户都连接到同一个数据库用户,那么你就无法控制权限了,除非在数据库上面加一堆独立的“安全”代码。举个例子,数据库中的一个表可以根据web2py连接时提供的某个字段来判断“用户”,然后相应地设置权限。数据库之所以有用户,就是为了这个目的。

撰写回答